搭建Spring MVC环境

发表时间:2017-07-18 18:54:30 浏览量( 29 ) 留言数( 0 )

学习目标:

1、掌握SpringMVC框架的基本搭建

2、第一个SpringMVC的实例


学习过程:

这节课我们再做一个例子,就是使用maven搭建springmvc框架,随便也学习一下spring mvc框架。Spring MVC属于SpringFrameWork的后续产品。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

一、添加依赖

1、查看spring mvc坐标

spring的包比较复杂,不过如果你导入spring-webmvc包,由于传递性依赖,会自动的帮你把spring-contexts等等的其他spring的包也会导入进来的,所以使用spring-webmvc,只需要添加一个依赖就可以了。

2、新建一个web项目,根据上面的信息,添加spring-webmvc的坐标,当然我们还是要添加servlet的依赖和tomcat的插件包,同时还要添加目录,修改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.javadayup</groupId>
	<artifactId>springday09mvc</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>springday09mvc Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>4.3.2.RELEASE</spring.version>
		<slf4j.version>1.7.12</slf4j.version>
		<logback.version>1.1.2</logback.version>
		<struts2.version>2.3.34</struts2.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>
	<build>
		<finalName>springday09mvc</finalName>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-maven-plugin</artifactId>
					<version>9.3.4.v20151007</version>
					<configuration>
						<scanIntervalSeconds>5</scanIntervalSeconds>
						<stopPort>9999</stopPort>
						<webAppConfig>
							<contextPath>/spring</contextPath>
						</webAppConfig>
						<httpConnector>
							<port>9090</port>
						</httpConnector>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.3.2</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

	</build>
</project>

二、在src/main/resources新建spring的配置文件,文件内容如下

<?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:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd     http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

	<mvc:annotation-driven />
	<context:component-scan base-package="com.*" />
	<!-- 视图解析器 /jsp/hello.jsp -->
	<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="prefix" value="/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView"></property>
	</bean>
</beans>

这里我们建议你使用spring mvc提供的注解实现,所以我们需要启动注解,并扫描所有的源码中的注解。spring mvc对试图层是分离,所以我们需要配置spring使用什么试图解析器,这里使用最简单的UrlBasedViewResolver,这里你可以留意一下前缀属性prefix和后缀属性suffix。一会在控制层里面只需要定义视图的名称即可。

三、修改web.xml

我们学习strust2的时候都知道,struts2有一个核心的中转器,接受所有的请求,然后再分配给每一个action。修改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_3_0.xsd"
	version="3.0" metadata-complete="true">

	<filter>
		<filter-name>Encoding</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>Encoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>



	<!-- 中转站 -->
	<servlet>
		<servlet-name>example</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

		<init-param>
			<!-- 不能修改该名称 -->
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:applicationContext.xml</param-value>
		</init-param>

		<!-- servlet 随着容器启动 tomcat启动时该servert就启动 -->
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>example</servlet-name>
		<!-- -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>


	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

四、新建一个控制层类

@Controller
public class MyFirstControl {

	@RequestMapping(value = "/hello")
	public ModelAndView hello() {
		
		ModelAndView modelAndView=new ModelAndView();
		modelAndView.setViewName("hello");//结合上面我们配置的前缀属性prefix和后缀属性suffix,得到路径就是jsp/hello.jsp
		modelAndView.addObject("name", "values");
		return modelAndView;
	}

}

修改index.jsp页面访问index.do路径就可以进入,然后在项目新建jsp目录,并新建一个hello.jsp页面就可以访问这个控制器,并跳转到hello.jsp页面了。