依賴
pom.xml ( maven )
<properties>
<spring.version>3.0.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
沒有使用 maven 的需手工導(dǎo)入包 ( 3.0.4 + 版本自由選擇 ) :
spring-core-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-aop-3.0.5.RELEASE.jar
spring-webmvc-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
aopalliance-1.0.jar
commons-logging-1.1.1.jar
web.xml 配置
為使用 Spring MVC,首先需要在 web.xml 中配置 DispatcherServlet。
它與 Struts 的過濾器作用類似,主要負(fù)責(zé)攔截請求并分發(fā)給對(duì)應(yīng)的目標(biāo)來處理。
web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
這種配置方式要求項(xiàng)目中必須存在 WEB-INF/[servlet-name]-servlet.xml 配置文件 ( 如這里的 dispatcher-servlet.xml )。
你也可以通過 <init-param> 來自定義指定配置文件的路徑和名稱。
web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<load-on-startup>1</load-on-startup>
load-on-startup 配置的是一個(gè)非負(fù)整數(shù)值,表示 Servlet 啟動(dòng)的優(yōu)先級(jí)別。數(shù)值越小,優(yōu)先級(jí)別越高。
0 或 不配置,表示只有當(dāng)?shù)谝淮问褂迷?Servlet 時(shí),容器才會(huì)去啟動(dòng)它 ( 包括加載、實(shí)例化、以及調(diào)用 init() 方法完成初始化 )。
1 或 > 1,表示 Servlet 將隨運(yùn)用程序的啟動(dòng)而啟動(dòng)。
<url-pattern>*.action</url-pattern>
表示攔截所有 .action 的請求,并交由 Spring MVC 來處理,非 .action 的請求,將不由 Spring MVC 處理。
多個(gè)值之間用英文的逗號(hào) “,” 分隔,需要注意的是,值與值之間不能存在空格:<url-pattern>*.action,*.htm</url-pattern>
<url-pattern>/</url-pattern>
表示攔截所有請求,并全部交由 Spring MVC 來處理。
Spring MVC 配置文件配置
spring-mvc.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: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-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 自動(dòng)掃描的包 -->
<context:component-scan base-package="org.lychie.tutorial.**.controller" />
<!-- 開啟注解支持 -->
<mvc:annotation-driven/>
<!-- 視圖處理 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前綴 -->
<property name="prefix" value="/WEB-INF/pages/" />
<!-- 后綴 -->
<property name="suffix" value=".jsp" />
</bean>
</beans>
Simple Example
HelloWorldController.java
package org.lychie.tutorial.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
@RequestMapping("/hello_world")
public String execute(){
return "hello_world_page";
}
}
訪問方式:/hello_world.action
頁面結(jié)果:WEB-INF/pages/hello_world_page.jsp ( 與 spring-mvc.xml 配置文件中的配置相關(guān)聯(lián),具體是:前綴 + 方法返回值 + 后綴 )
@Controller
標(biāo)識(shí)這是一個(gè)控制器,與 Struts 的 Action 作用相似。被標(biāo)識(shí)的類具有處理請求的能力。
@RequestMapping
映射方法訪問的 URL 地址,具體的使用放到下一章節(jié)中。
源代碼下載
springmvc-helloworld.zip