1.环境准备
(1) java1.7安装与环境变量配置(略)
(2) tomcat7.0安装与环境变量配置(略)
(3) Eclipse luna4.4.2下载
到http://www.eclipse.org/downloads/index.php这里选择Eclipse IDE for Java EE Developers中的windows 64 Bit下载64位版本
(4) Maven3.2.x
下载的Eclipse Java EE版本中已经安装了Maven插件
(5) spring4.1.1
2.启动Eclipse创建Maven工程
(1) 解压下载的Eclipse的zip包,修改eclipse.ini文件,在-vmargs前加上:
-vm
C:\Program Files\Java\jdk1.7.0_60\bin\javaw
(2) 启动eclipse
File->new->project->Maven->Maven Project
点击<Next>按钮
点击<Next>按钮,在Filter中输入webapp过滤后,如下图:
选择<maven-archetype-webapp>,点击<Next>按钮
点击<Finish>按钮,完成工程创建。
工程目录结构如下:
3. 修改项目基本设置
(1) 右击项目名称->properties->Java Build Path
提示SpringMvcTest/src/main/java(missing)和SpringMvcTest/src/test/java(missing),将missing的先删除,再创建SpringMvcTest/src/main/java。
(2) 选中Libraries标签,将默认的JRE System Library [J2SE-1.5]删除,添加JRE System Library [J2SE-1.7]并确认
(3) 添加Service工程
Window->show View->Servers调出Servers视图,点击No Servers are available.Click this link to create a new server...打开new server窗口
选择Apache->Tomcat v7.0 Server->Next->Browse(选择本地安装的tomcat目录)->Next->Finish
右击项目名称->properties->Java Build Path->Libraries->Add Library...->Server Runtime->Apache Tomcat v7.0->Finish
配置完后如下图所示:
(4) 配置java版本和web版本及目录
右击项目名称->properties->Deployment Assembly,将不使用的/target/m2e-wtp/web-resources删除。
右击项目名称->properties->Java Compiler,选择java版本为1.7
右击项目名称->properties->Project Facets,选择java版本为1.7;
Dynamic Web Module的版本需要改为3.0,但是不能直接在这里改,需要到 项目目录/.settings/org.eclipse.wst.common.project.facet.core.xml中
修改<installed facet="jst.web" version="3.0"/>,重启eclipse使之生效。
(5) Eclipse中Maven的配置
Window->properties->Maven,勾选 download repository index updates on startup
4.Spring Mvc的配置
(1) pom.xml配置
双击pom.xml文件选择下面的Dependencies标签,添加下列jar包:
group Id:org.springframework Artifact Id:spring-webmvc Version:4.1.1.RELEASE
group Id:jstl Artifact Id:jstl Version:1.2
group Id:taglibs Artifact Id:standard Version:1.1.2
保存退出。
完整的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.test.springmvc</groupId>
<artifactId>SpringMvcTest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SpringMvcTest 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-webmvc</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
<build>
<finalName>SpringMvcTest</finalName>
</build>
</project>
(2) web.xml配置
打开src/main/webapp/WEB-INF/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/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="SpringMvcTest" version="3.0">
<display-name>Archetype Created Web Application</display-name>
<description>sprintMVC环境搭建</description>
<!-- 加载Spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/configs/spring-*.xml</param-value>
</context-param>
<!-- Spring监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring MVC配置 -->
<servlet>
<servlet-name>Dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 自定义spring mvc的配置文件名称和路径 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:configs/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- spring mvc 请求后缀 -->
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 解决页面乱码,字符集过滤 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
(3) 在Java Resources/scr/main/resources目录下,创建configs文件夹,以便存放在web.xml中声明的配置路径
在Java Resources/scr/main/resources/configs目录下,创建spring-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:jee="http://www.springframework.org/schema/jee"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.1.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.test.spring.mvc.controller" />
<mvc:annotation-driven />
<mvc:resources mapping="/styles/**" location="/styles/" />
<mvc:resources mapping="/scripts/**" location="/scripts/" />
<mvc:resources mapping="/images/**" location="/images/" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
(4) 创建controller包,在spring-servlet.xml文件中,<context:component-scan base-package="com.test.spring.mvc.controller" />已经指定了路径
创建第一个controller文件HelloController.java,完整的文件内容如下:
package com.test.spring.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello(){
ModelAndView mv =new ModelAndView();
mv.addObject("spring", "spring mvc");
mv.setViewName("helloPage");
return mv;
}
@RequestMapping("/testUTF8")
public ModelAndView testmvc(){
ModelAndView mv =new ModelAndView();
mv.addObject("testChinese", "嘿,世界!");
mv.setViewName("testChinesePage");
return mv;
}
}
(5) 在src/main/webapp/WEB-INF目录下,创建views文件,在spring-servlet.xml文件中,<property name= "prefix" value= "/WEB-INF/views/" />已指定了视图文件路径
添加src/main/webapp/WEB-INF/views/helloPage.jsp文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello Page</title>
</head>
<body>hello ${spring}!
</body>
</html>
添加src/main/webapp/WEB-INF/views/testChinesePage.jsp文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test Chinese Page</title>
</head>
<body>hello ${testChinese}!
</body>
</html>
5.发布项目到tomcat
(1) 打开Servers视图,双击Tomcat v7.0 Server at localhost [stopped],设置overview选项卡中Server Locations的设置
a. 将 Use Tomcat installation(takes control of Tomcat installation)选中
b. 将Deploy path的内容改为:webapps
c. 保存
(2) 右击Tomcat v7.0 Server at localhost [stopped],Add and Remove… ,添加工程SpringMvcTest
(3) 启动tomcat
(4) 打开浏览器输入http://localhost:8080/SpringMvcTest/hello,访问成功,如下图:
(5) 打开浏览器输入http://localhost:8080/SpringMvcTest/testUTF8,访问成功,如下图: