目 录
1. spring mvc
1.1 spring-mvc入门(一):入门实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 spring-mvc入门(二):后端控制器(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 spring-mvc入门(二):后端控制器(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.4 spring-mvc入门(三):映射处理器(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
1.5 spring-mvc入门(三):映射处理器(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
1.6 spring-mvc入门(四):视图与视图解析器(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
1.7 spring-mvc入门(四):视图与视图解析器(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
1.8 spring-mvc入门(五):使用注解(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
1.9 spring-mvc入门(五):使用注解(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
http://86asm.iteye.com
第 2 / 39 页
1.1 spring-mvc入门(一):入门实例
发表时间: 2011-02-27 关键字: MVC, Spring, Servlet, Web, Bean
引言
1.MVC :Model-View-Control
框架性质的C 层要完成的主要工作:封装web 请求为一个数据对象、调用业务逻辑层来处理数据对象、
返回处理数据结果及相应的视图给用户。
2. 简要概述springmvc
Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用
了一种被称为Front Controller 的模式(后面对此模式有简要说明)。 Spring 的C 层框架使用了后端控
制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把
业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
一、入门实例
1. 搭建环境
在spring 的官方API 文档中,给出所有包的作用概述,现列举常用的包及相关作用:
org.springframework.aop-3.0.5.RELEASE.jar :与Aop 编程相关的包
org.springframework.beans-3.0.5.RELEASE.jar :提供了简捷操作bean 的接口
org.springframework.context-3.0.5.RELEASE.jar :构建在beans 包基础上,用来处理资源文件及国际
化。
org.springframework.core-3.0.5.RELEASE.jar :spring 核心包
org.springframework.web-3.0.5.RELEASE.jar :web 核心包,提供了web 层接口
org.springframework.web.servlet-3.0.5.RELEASE.jar :web 层的一个具体实现包,
DispatcherServlet也位于此包中。
后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所
有jar 包位于dist 目录下)。
http://86asm.iteye.com
1.1 spring-mvc入门(一):入门实例
第 3 / 39 页
2. 编写HelloWorld 实例
步骤一、建立名为springMVC_01_helloword ,并导入上面列出的jar 包。
步骤二、编写web.xml 配置文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>spmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
简要说明 :DispatcherServlet 就是一个Servlet ,也是对请求进行转发的核心Servlet 。在这里即所
有.do 的请求将首先被DispatcherServlet 处理,而DispatcherServlet 它要作的工作就是对请求进行分
发(也即是说把请求转发给具体的Controller )。可以简单地认为,它就是一个总控处理器,但事实上
它除了具备总控处理理器对请求进行分发的能力外,还与spring 的IOC 容器完全集成在一起,从而可以
更好地使用spring 的其它功能。在这里还需留意 < servlet-name > spmvc </ servlet-name > ,下面
步骤三会用到。
步骤三、建立 spmvc-servlet.xml 文件,它的命名规则: servlet-name-servlet.xml 。它的主要代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
http://86asm.iteye.com
1.1 spring-mvc入门(一):入门实例
第 4 / 39 页
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">helloControl</prop>
</props>
</property>
</bean>
<bean id="helloControl" class="com.asm.HelloWord"></bean>
</beans>
说明: hello.do 的请求将给名为 helloControl 的 bean 进行处理。
步骤四、完成 HelloWord.java 的编写,代码如下:
package com.asm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWord implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws Exception {
ModelAndView mav = new ModelAndView("hello.jsp");
mav.addObject("message", "Hello World!");
return mav;
}
}
说明 :ModelAndView 对象是包含视图和业务数据的混合对象,即是说通过此对象,我们可以知道所
返回的相应页面(比如这里返回hello.jsp 页面),也可以在相应的页面中获取此对象所包含的业务数据
(比如这里message-hello worrld )。
步骤五、在当前项目web 根目录下编写hello.jsp ,主要代码如下:
< body >
http://86asm.iteye.com
1.1 spring-mvc入门(一):入门实例
第 5 / 39 页