依赖
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 的需手工导入包 ( 3.0.4 + 版本自由选择 ) :
< 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 >
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 的过滤器作用类似,主要负责拦截请求并分发给对应的目标来处理。
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 >
这种配置方式要求项目中必须存在 WEB-INF/[servlet-name]-servlet.xml 配置文件 ( 如这里的 dispatcher-servlet.xml )。
< 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 >
你也可以通过 <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>
< 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 配置的是一个非负整数值,表示 Servlet 启动的优先级别。数值越小,优先级别越高。
0 或 不配置,表示只有当第一次使用该 Servlet 时,容器才会去启动它 ( 包括加载、实例化、以及调用 init() 方法完成初始化 )。
1 或 > 1,表示 Servlet 将随运用程序的启动而启动。
<url-pattern>*.action</url-pattern>
表示拦截所有 .action 的请求,并交由 Spring MVC 来处理,非 .action 的请求,将不由 Spring MVC 处理。
多个值之间用英文的逗号 “,” 分隔,需要注意的是,值与值之间不能存在空格:<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" >
<!-- 自动扫描的包 -->
< 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 >
< 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" >
<!-- 自动扫描的包 -->
< 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
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";
}
}
页面结果:WEB-INF/pages/hello_world_page.jsp ( 与 spring-mvc.xml 配置文件中的配置相关联,具体是:前缀 + 方法返回值 + 后缀 )
@Controller
标识这是一个控制器,与 Struts 的 Action 作用相似。被标识的类具有处理请求的能力。
@RequestMapping
映射方法访问的 URL 地址,具体的使用放到下一章节中。
源代码下载
springmvc-helloworld.zip[ 随笔均原创,转载请注明出处:http://www.blogjava.net/fancydeepin ]