springmvc技术文档

  • 格式:pdf
  • 大小:471.22 KB
  • 文档页数:6

Spring MVC技术文档

1. Spring MVC 框架介绍

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用

Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架

还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配

置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、

Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以

及处理程序对象的角色,这种分离让它们更容易进行定制。

2. Spring MVC 优点

1)Spring MVC中的功能组件划分很细致,采用了面向方面的编程aop

技术更好的降低的程序的耦合度,也使得程序扩展起来非常方便、灵

活。 2)Spring MVC性能非常优秀,能与Spring框架无缝集成,相比Struts2

效率更快,Struts2由于采用了值栈、OGNL表达式、struts2标签库

等,会导致应用的性能下降。 3)Spring MVC的学习难度小于Struts2,Struts2用不上的多余功能太

多。 4) Spring MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)

3. Spring MVC 主要功能

1) 以Controller为中心完成对系统流程的控制管理

2) 获取请求中提交的数据

3) 对传入参数进行验证

4) 根据请求调用相应业务逻辑完成数据处理 5) 将处理结果返回给视图

6) 国际化支持

7) 针对不同视图技术提供不同解析支持方案

8) 针对JSP视图技术提供标签库

9) 通过拦截器链实现面向方面编程完成系统级控制 10) 对文件上传、下载等常用功能的封装

4. Spring MVC 技术介绍

实现Spring MVC的方式主要有两种,一种是基于配置的方式来实现,另一种是基于注解的方式实现,重点主要为基于注解的方式来实现

Spring MVC。

4.1 Spring MVC的几大核心组件

DispatcherServlet 前端控制器,将请求分派到具体的控制器

Controller中 Controller 具体的控制器,完成对系统流程的控制管理

Handler Mapping 映射器,将请求映射到具体的控制器Controller上,

前端控DispatcherServlet通过此映射,才能将请

求分派到具体的控制器 Controller

ViewResolver 和 View ViewResolver为视图解析器,View为视图解析类,两者需结合使用 ,视图解析器是指为返回的视

图指定某种解析方案,而视图解析类则为此种解

析方案指定具体实现。 Interceptors 拦截器

LocalResolver 本地标签库,如:jsp标签库

Validate 验证框架

4.2 基于配置的Spring MVC 4.2.1 首先需要配置DispatcherServlet,配置如下:

说明:

1) contextConfigLocation 指定Spring MVC配置文件的加载路径,若未指定配置文件加载

路径,则默认路径为/WEB-INF/[servlet-name]-servlet.xml,如

/WEB-INF/testMvc -servlet.xml

2) 1加载方式1为启动服务时加载

3) 包含*.mvc的请求,将会被DispatcherServlet拦截

testMvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath*:/mvcconf/**/*_mvc.xml

1

testMvc

*.mvc

4.2.2 写一个自己的业务处理Controller类

说明: 1) 通过直接实现Controller 接口或AbstractController抽象类来

定义一个Controller

2) 返回一个ModelAndView对象,testSuc是指返回的视图名称,

testList为返回页面的模型数据,页面取的时候直接取这个健对应的值即可,如${testList},

当调用mv.addObject(attributeValue)方法时,此时没有指定存

放对象的键,将会默认为实际存放对象的名字,如:

Wusers对应的键为wusers

List对应的键为userList Set对应的键为peopleSet

等等……

3) 常用到的一些Controller如下:

a) 用于直接跳转页面的 ParameterizableViewController 参数化的视图控制器,

根据配置中的参数来匹配相应的视图

UrlFilenameViewController 路径文件名视图控制器,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 TestController implements Controller {

public ModelAndView handleRequest(HttpServletRequest arg0,

HttpServletResponse arg1) throws Exception {

ModelAndView mv=new ModelAndView("testSuc");

mv.addObject("testList", new ArrayList());

System.out.println("测试springmvc成功");

return mv; }

} 根据请求路径来匹配要跳转到的文件名

b) 在同一控制器类中处理多个请求的MultiActionController.具体调用的方法通过MethodNameResolver决定

(InternalPathMethodResolver,

ParameterMethodNameResolver,PropertiesMethodResolv

er)

方法签名: public (ModelAndView | Map | String | void)

actionName(HttpServletRequest request,

HttpServletResponse response, [,HttpSession]

[,AnyObject]);

c) 能封装表单参数的CommandController、 FormController

4.2.3 添加Spring MVC的相关配置如下:

说明:

class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

">

testController

class="org.springframework.web.servlet.view.UrlBasedViewResolver">

value="org.springframework.web.servlet.view.JstlView" />