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" />