简述概念:
Maven:是基于项目对象模型,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。
springMVC:在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法
一、前提条件:
1、eclipse v4.5.1
2、tomcat v7.0
3、jdk v1.7.0
4、maven v3.6.2
二、创建的详细步骤:
1、打开eclipse,新建一个新的工作文件目录mavenSpringMVCdemo
2、新建项目
3、解决jsp报错问题
解决方法:
(1)右击项目名 -> Buid Path -> Configure Build Path,
(2)选择Libraries选项卡,点击Add Library -> Server Runtime ,
(3)选择一个已建好的tomcat,没有建立tomcat的,请先配置好tomcat。
(4)点击 finish, 可看到如下截图。
点击Apply之后,正常情况下,可以看到项目的红叉已消失。
然后切换到Order and Export 选项:
点击上图的OK之后,可以看到,缺失的资源文件src/main/java和src/test/java已经有了。
注意:作为Maven项目必须包含以下4个资源文件夹,如果没有,需要手动创建。
4、新建src/test/resource资源文件夹(因为其他三个自动生成了,这个没有)
资源文件建好之后,还需设置正确的Output folder。src/test/resource资源文件夹需要设置(因为其他三个自动生成了,这个没有)
5、配置Maven库:
6、更改配置文件pom.xml
这是Maven的主要配置文件,可以在里面配置项目所需要的jar包。
<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.ligw</groupId>
<artifactId>mavenSpringMVCdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mavenSpringMVCdemo 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>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
</dependencies>
<build>
<finalName>mavenSpringMVCdemo</finalName>
</build>
<properties>
<springVersion>4.2.3.RELEASE</springVersion>
</properties>
</project>
7、右键项目,选择Maven,Update Project,更新完之后就没有红叉报错了。
8、更改配置文件web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>mavenSpringMVCdemo</display-name>
<!-- 前端控制器 -->
<servlet>
<servlet-name>spring-mvc</servlet-name> <!-- 名称,真实的文件名需要在这个名字后面加上-servlet后缀 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatcherServlet路径,照写 -->
<!-- 这里可以设置前端控制器的路径,如果这一步注释掉,则默认前端控制器的路径为:/WEB-INF/[servlet-name]-servlet.xml
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/configs/spring-mvc-servlet.xml</param-value> 这里配置前端控制器的路径
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 拦截所有请求 -->
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name> <!-- 这里的名字要和上面的servlet-name统一 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
9、新建前端控制器配置文件
因为这里使用的是默认的路径,所以只需要在WEB-INF目录下创建前端控制器文件。
又因为在web.xml中配置的名称是spring-mvc,所以新建的文件名是spring-mvc-servlet。
10、添加spring-mvc-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.2.xsd">
<!-- 扫描路径 -->
<context:component-scan base-package="com.springmvc.controller" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 配置根视图 -->
<mvc:view-controller path="/" view-name="index"/>
<!-- 激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定 ,@NumberFormat ,
@DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等 -->
<mvc:annotation-driven />
<!-- 静态资源配置 -->
<mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
<!-- 视图层配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
11、添加Controller类
12、添加页面
新建视图文件夹
新建jsp页面
添加页面内容:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HelloSpringMVC</title>
</head>
<body>
<h1>message:${message}</h1>
<h1>this is my spring mvc</h1>
</body>
</html>
13、此时,用tomcat启动项目
发现WEB-INF下的index.jsp可以被访问,但view下的HelloWorld.jsp还不能被访问
13、问题处理
(1)右击项目名->Properties(在最下方) ->拖动左侧栏,找到Deployment Assembly ->移除多余部分。
添加Maven Dependencies
注意:这里一定要确保Maven Dependencies在 Web Deployment Assembly 中,否则无法访问controller中的url。(这是13步的原因)
再次访问
至此,基于Maven+Spring MVC的HelloWord项目已创建完毕。