环境
jdk:1.8
Tomcat:7.0
本地mysql:8.0
Eclipse:Eclipse Jee Photon
Spring:4.3.8
AOP:1.8.0
mybatis:3.3.0
Mysql驱动:8.0.11
Druid:1.1.10
jstl:1.2
log4j:1.2.17
junit:3.8.1
项目目录结构
数据库设计
运行效果
代码下载
https://download.csdn.net/download/badao_liumang_qizhi/10939695
实现
环境搭建
1.下载Maven并配置好。
2.创建Maven项目时设置JDK,
eclipse创建maven项目时,显示的JDK默认版本为1.5,实际使用的JDK为1.8。
修改参照:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/86184775
创建项目
1.使用Eclipse--File--New--Maven project
2.点击next
3.再点击next
4.选择maven-archetype-webapp,点击next
5.输入项目相关信息Group Id(组织名)、Artifact Id(项目名)点击Finish
建成后的目录
配置新建的项目
1.右击项目--Build Path--Configure Build Path
2.找到Libraries,可以看到此时JRE默认是1.5的.
JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。
运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
3.点击JRE System Libray [J2SE-1.5] --点击Remove--Apply
4.移除完之后再点击Add Libray
5.然后选择JRE System Library,点击next
6.选择自己本地对应的JRE,这里是JRE1.8,点击Finish
7.这时可以看到已经将JRE改为1.8了,点击Apply and Close。
8.回来再点击Add Library,选择Server Runtime
9. 选中Tomcat并点击Finish
10.配置完之后应该为下面这样,点击Apply and Close
11.Eclipse设置Server好Tomcat,Windows--Preferences--Server--Runtime Environment,如果已经有了就选中后点击Edit,如果没有则点击Add。
12.这里点击编辑,选择本地Tomcat的目录,并将JRE修改过来。
12.查看项目信息
右击项目--Properties--Project Facets,可以看到此时的Dynamic Web Services为2.3,java为1.5 ,
Dynamic Web Services为3.0以上才有web.xml,而且如果想要使用Tomcat8.5的话,也要修改。
找到Eclipse的工作目录下的项目目录下的.settings文件夹下的org.eclipse.wst.common.project.facet.core.xml
用编辑器打开
修改之前
修改之后
返回Eclipse,刷新项目,右击项目,选择refresh
刷新之后再看到,已经自动更改过来了。
同步配置项目
打开Eclipse下maven项目下的web.xml
修改之前
修改为
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
修改Maven项目的pom.xml
修改之前的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.badao</groupId>
<artifactId>ssmTest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ssmTest Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>ssmTest</finalName>
</build>
</project>
修改为:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bdao</groupId>
<artifactId>ssmTest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ssm Maven Webapp</name>
<url>http://maven.apache.org</url>
<build>
<finalName>ssmTest</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
更新项目
右击项目--Maven--Update Project
选择要更新的项目,点击OK
添加项目依赖
修改pom.xml内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bdao</groupId>
<artifactId>ssmTest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ssm Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- Spring版本号 -->
<spring.version>4.3.8.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring相关包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- AOP相关包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0</version>
</dependency>
<!-- MyBatis相关包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- MySQL相关包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- Spring集成MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- JSP标准标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志相关包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<!-- 单元测试相关包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>ssmTest</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
保存后可以看到相关依赖已经被加载
完善项目结构
因为服务端maven项目的标准结构有四个子包:src/main/java、src/main/resources、src/test/java、src/test/resources,
这里缺少了src/test/resources,所以手动补上。
右击test目录--new--Folder
输入resources,点击FInish
编写配置文件
创建log4j.properties
在src--main-resource下右击--new--File
输入log4j.properties
内容如下:
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.how2java=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
创建mybatis-config.xml
在 src--main-resource下右击--new--Other
选择XML下的XML File,点击next
名字是mybatis-config.xml ,点击Finish。
在这里我们只配置一个别名,使用typeAliases标签,类型别名,就是一个实体类的名字太长,而且使用频率比较高时,
就给这个全限定的类名起了一个别名。 配置别名是为了在对象映射文件中接受参数类型和返回参数类型时使用。
1.如果是设定单个类的别名:
<typeAlias alias="uesr" type="com.badao.pojo.User"/>
alies:取的别名。
type:这个别名所对应类的Java类。
2.如果是设置这个包下的所有类的别名:
<typeAliases>
<package name="com.badao.pojo" />
</typeAliases>
默认是类名小写。
3.mybatis-config.xml 内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 设置别名 -->
<typeAliases>
<package name="com.badao.pojo" />
</typeAliases>
</configuration>
创建spring-mvc.xml
同上也在此目录下新建spring-mvc.xml
1.启用自动扫描
代码:
<context:component-scan base-package="com.badao.*" />
讲解:
自动扫描该包,使SpringMVC认为该包下使用了@Controller 注解的是控制器
2.注册MVC注解驱动
代码:
<mvc:annotation-driven />
讲解:
<mvc:annotation-driven>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,
这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,
@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。
3.设置静态资源可访问
代码:
<mvc:default-servlet-handler />
讲解:
在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,
如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。
如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:
<mvc:default-servlet-handler default-servlet-name="所使用的Web服务器默认使用的Servlet名称" />
4.配置视图解析器
代码:
<!-- 配置视图解析器,可以显式设置,也可以不设置,不设置会依据SpringMVC的默认设置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
讲解:
VIewResolver的作用是根据viewName找到view对象,SpringMVC用于处理视图最重要的两个接口是ViewResolver和View。
ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图。
其中name="prefix,配置的前缀,因为这里的jsp文件是放在WEB-INF下的新建的jsp目录.
name="suffix" ,配置后缀,解析以.jsp结尾的.
这样SpringMVC就能在Controller中根据返回的字符串找到要跳转的视图,比如在Controller中:
@RequestMapping("listUser")
public ModelAndView listUser(){
ModelAndView mav = new ModelAndView();
List<User> cs= userService.selectAllUser();
// 放入转发参数
mav.addObject("userList", cs);
// 放入jsp路径
mav.setViewName("listUser");
return mav;
那么视图就能解析为WEB-INF下的jsp目录下的listUser.jsp
5.完整spring-mvc.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 启动自动扫描 -->
<context:component-scan base-package="com.badao.*" />
<!-- 注册MVC注解驱动 -->
<mvc:annotation-driven />
<!-- 静态资源可访问的设置方式 -->
<mvc:default-servlet-handler />
<!-- 配置视图解析器,可以显式设置,也可以不设置,不设置会依据SpringMVC的默认设置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
创建spring-mybatis.xml
同上也在此目录下新建spring-mybatis.xml,这是Spring整合Mybatis时的配置文件。
1.定义数据源Bean
代码:
<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"> <propertyname="url"value="jdbc:mysql://localhost:3306/ssmtest?characterEncoding=UTF-8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123" />
</bean>
讲解:
①关于Druid连接池的概念以及属性和使用等参照以下
SSM中使用Druid连接池:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/85120936
②如果项目运行后提示:
对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。
参照:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/86554028
③关于配置文件中url中useSSL=false
参照:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/86554488
④关于配置文件中url中&
参照:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/86554028
2.注册SqlSessionFactoryBean
代码:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mappers.xml文件 -->
<property name="mapperLocations" value="classpath:com/badao/mapper/*.xml" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
讲解:
SqlSessionFactoryBean有一个必须属性dataSource。
mapperLocations 属性使用一个资源位置的 list。 这个属性可以用来指定 MyBatis 的 XML 映射器文件的位置。
configLocation指定mybatis配置文件的位置。
3.接口转化为bean
代码:
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.badao.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
讲解:
如果数据映射接口很多的话,需要在Spring的配置文件中对数据映射接口做配置,相应的配置项会很多了。
为了简化配置,在MyBatis-Spring中提供了一个转换器MapperScannerConfig它可以将接口转换为Spring容器中的Bean,
在Service中@Autowired的方法直接注入接口实例。MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类),如果它们在SQL映射文件中定义过,则将它们动态定义为一个Spring Bean,这样,我们在Service中就可以直接注入映射接口的bean。
4.spring-mybatis.xml完整代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 定义数据源Bean -->
<!-- Druid -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<propertyname="url"value="jdbc:mysql://localhost:3306/ssmtest?characterEncoding=UTF-8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123" />
</bean>
<!-- 注册SqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mappers.xml文件 -->
<property name="mapperLocations" value="classpath:com/badao/mapper/*.xml" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.badao.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
</beans>
编写业务代码
编写POJO
在main下java下新建包com.badao.pojo
在此包下新建User.java
package com.badao.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(Integer id, String name, Integer age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
新建mapper层
同理再新建包com.badao.mapper
此包下新建UserMapper.java接口
package com.badao.mapper;
import java.util.List;
import com.badao.pojo.User;
public interface UserMapper {
public List<User> selectAllUser();
}
再在此包下新建UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.badao.mapper.UserMapper">
<select id="selectAllUser" resultType="User">
select * from user
</select>
</mapper>
新建service层
同理新建包com.badao.service
在此包下新建UserService.java接口
package com.badao.service;
import java.util.List;
import com.badao.pojo.User;
public interface UserService {
List<User> selectAllUser();
}
再新建包com.badao.service.impl
在此包新建UerServiceImpl.java作为上面的实现类
package com.badao.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.badao.mapper.UserMapper;
import com.badao.pojo.User;
import com.badao.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
public List<User> selectAllUser() {
// TODO Auto-generated method stub
return userMapper.selectAllUser();
}
}
新建controller层
同理新建包com.badao.controller
在此包下新建UserController.java
package com.badao.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.badao.pojo.User;
import com.badao.service.UserService;
// 告诉spring mvc这是一个控制器类
@Controller
@RequestMapping("")
public class UserController {
@Autowired
UserService userService;
@RequestMapping("listUser")
public ModelAndView listUser(){
ModelAndView mav = new ModelAndView();
List<User> cs= userService.selectAllUser();
// 放入转发参数
mav.addObject("userList", cs);
// 放入jsp路径
mav.setViewName("listUser");
return mav;
}
}
完整业务包结构
编写jsp页面
在webapp下的WEB-INF下新建jsp目录,再在jsp目录下新建listUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
pageContext.setAttribute("APP_PATH", request.getContextPath());
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询所有用户</title>
</head>
<script type="text/javascript" src="${APP_PATH }/static/js/jquery-1.12.4.min.js"></script>
<link href="${APP_PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<script src="${APP_PATH }/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<body>
<table align='center' border='1' cellspacing='0' class="table table-bordered "
<th >
<td>id</td>
<td>name</td>
<td>age</td>
</th>
<c:forEach items="${userList}" var="u">
<tr class="active">
<td >${u.id}</td>
<td>${u.name}</td>
<td>${u.age}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
编写web.xml
打开web.xml,配置spring的配置文件以及spring mvc的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<!-- spring的配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring mvc核心:分发servlet -->
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- spring mvc的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
项目运行前的准备
使用Maven构建项目
在项目上右键,找到Maven下的Update Project
然后点击OK,不出现异常就是正常。
然后再项目上右键,选择run as --maven install
会在控制台输出以下信息:
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.bdao:ssm:war:0.0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 115, column 16
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ----------------------------< com.bdao:ssm >----------------------------
[INFO] Building ssm Maven Webapp 0.0.1-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ssm ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ ssm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ssm ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ ssm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ssm ---
[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ ssm ---
[INFO] Packaging webapp
[INFO] Assembling webapp [ssm] in [F:\EcpliseWorkspace\ssm\target\ssm]
[INFO] Processing war project
[INFO] Copying webapp resources [F:\EcpliseWorkspace\ssm\src\main\webapp]
[INFO] Webapp assembled in [683 msecs]
[INFO] Building war: F:\EcpliseWorkspace\ssm\target\ssm.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ssm ---
[INFO] Installing F:\EcpliseWorkspace\ssm\target\ssm.war to D:\Maven\maven-repository\com\bdao\ssm\0.0.1-SNAPSHOT\ssm-0.0.1-SNAPSHOT.war
[INFO] Installing F:\EcpliseWorkspace\ssm\pom.xml to D:\Maven\maven-repository\com\bdao\ssm\0.0.1-SNAPSHOT\ssm-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.241 s
[INFO] Finished at: 2019-02-20T23:06:15+08:00
[INFO] ------------------------------------------------------------------------
如图:
则说明构建成功,前面的配置没有问题。
项目运行
右击项目,选择debug as --debug on server
然后选择前面配置的Tomcat
然后点击Finish,控制台没报异常,启动Tomcat成功。
打开浏览器输入:
http://localhost:8080/ssm/listUser