(图文)Maven整合SpringMVC(解决了maven内置tomcat服务器与jdk版本不兼容的处理问题)

项目完成之后整体的项目结构:

在这里插入图片描述

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
另外,通常第一次发布,都会报错,因此报错之后,再操作一遍尝试一下
在这里插入图片描述

结果如下:
在这里插入图片描述
点击超链接:
在这里插入图片描述

发布了23 篇原创文章 · 获赞 1 · 访问量 1643

猜你喜欢

转载自blog.csdn.net/weixin_43978412/article/details/100061685