项目完成之后整体的项目结构:
1、Eclipse中使用Maven创建一个web项目
创建部分本来不想说,但怕到最后你们不成功,所以我还是直接上图,基本按照我的步骤来不会出问题!
2、处理web.xml文件丢失的问题
3、设置项目jdk编译的版本
为什么要设置呢?
因为Eclipse中创建的项目默认编号为J2SE1.5
我本地安装的是JDK1.8
而maven是依赖于本地jdk来运行的
所以如果我们项目的编译版本跟本地jdk版本不一致,就会出问题!
因此打开pom.xml(项目对象管理文件),并添加如下变异组件
<!-- 配置maven插件 -->
<build>
<plugins>
<!-- 配置maven的编译版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- 配置本地jdk编码版本信息 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
之后需要update project,才能看到效果!
4、设置maven内置服务器为tomcat7
我们知道,maven的运行依赖jdk,而tomcat的版本跟jdk也有关系。
假如我们配置好项目之后用maven命令:tomcat:run来部署项目,那么如果tomcat和本地jdk版本不兼容,就会导致一些classFormatException之类的异常!
我的jdk版本是1.8,所以对应使用的tomcat服务器版本必须是7以上。
因此需要设置maven的内置服务器为tomcat7
注意:如此一来,我们在使用maven命令部署项目时,命令为:tomcat7:run
在pom.xml中配置,因此编译组件部分的整体代码如下:
<!-- 配置maven插件 -->
<build>
<plugins>
<!-- 配置maven的编译版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- 配置本地jdk编码版本信息 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 如果你的jdk版本为1.8
那么必须设置maven的内置服务器为tomcat7
运行时使用的maven命令:tomcat7:run
-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
5、添加依赖
由于我们是maven和springmvc整合,所以需要导入springmvc的核心依赖包:spring-webmvc
我使用的是最新的5.1.9版本的
<dependencies>
<!-- 添加springmvc的核心依赖
其他相应的依赖,maven会自动加载
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
除此之外,我们需要用到jsp页面,因此我们还需要添加jsp-api的依赖包,所以依赖部分的整体代码如下:
注意:jsp-spi的依赖范围,必须设置为provided!!!
<dependencies>
<!-- 配置jsp-api依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- 添加springmvc的核心依赖
其他相应的依赖,maven会自动加载
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
6、创建springMVC配置文件
在src/main/resources目录下创建springmvc的配置文件:springmvc.xml
- 需要配置的有如下几个:(有疑问的可以复习一下springmvc的配置)
- context注解扫描器
- mvc注解驱动
- 视图解析器
因此配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<!-- 配置Spring创建容器时要扫描的包 -->
<context:component-scan base-package="cn.itcast.controller"></context:component-scan>
<!-- 配置mvc注解驱动 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/WEB-INF/view/" />
<!-- 配置后缀 -->
<property name="suffix" value=".jsp" />
</bean>
</beans>
7、配置SpringMVC的前端控制器
前端控制器是配置在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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>Maven_SpringMVC</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 配置SpringMVC的前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置初始化参数contextConfigLocation
设置由该成员来加载springmvc的配置文件
否则会默认去/WEB-INF/classes目录下查询
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
8、创建Controller
在src/main/java目录下创建Controller,包路径为:cn.itcast.controller
package cn.itcast.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping(value = { "/sayHello.action" }, method=RequestMethod.GET)
public ModelAndView sayHello() throws Exception {
ModelAndView modelAndView = new ModelAndView();
// 保存数据
modelAndView.addObject("message", "恭喜,Maven和SpringMVC整合成功!");
// 指定试图
modelAndView.setViewName("success");
return modelAndView;
}
}
9、准备jsp页面
准备index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath }/sayHello.action">测试Maven和SpringMVC整合</a>
</body>
</html>
准备success.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${requestScope.message }
</body>
</html>
10、测试
这里要执行的maven命令,切记是:tomcat7:run
另外,通常第一次发布,都会报错,因此报错之后,再操作一遍尝试一下!
结果如下:
点击超链接: