springMVC框架学习
来源:互联网 发布:javascript菜鸟 编辑:程序博客网 时间:2024/04/28 06:58
整体框架图
1)整个过程始于客户端发出的一个HTTP请求,Web应用服务器接收到这个请求,如果匹配DispatcherServlet的请求映射路径(web.xml指定),Web容器将该请求转交给DispatcherServlet处理
2)DispatcherServlet接收到这个请求后,将根据请求的信息(包括URL、HTTP方法、请求报文头、请求参数、Cookie等)及HandlerMapping的配置找到处理请求的处理器Handler。可将HandlerMapping看成路由控制器,将Handler看成目标主机。值得注意的是SpringMVC并没有定义一个Handler接口,实际上任何一个Object都可以成为请求处理器。
3)当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器借口调用Handler。HandlerAdapter是SpringMVC的架构级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。
4)处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。
5)ModelAndView中包含的是“逻辑视图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。
6)当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。
7)最终客户端得到的响应信息,可能是一个普通的HTML页面,也可能是一个XML活JSON串,甚至是一张图片或一个PDF文档等不同的媒体形式。
方法映射
使用@ReeuestMapping映射请求
@RequestMapping不但支持标准的URL还支持 Ant风格(?、*和**的字符 )和带{xxx}占位符的URL。如:
/user/*/createUser:匹配/user/adfaf/createUser、/user/12/createUser等URL
/user/**/createUser:匹配/user/createUser、/user/affa/createUser等URL
/user/createUser??:匹配/user/createUseraa、/user/createUserbb等URL
/user/{userId}:匹配/user/12241241、/user/211221等URL
/user/**/{userId}:匹配/user/afaf/afds/1241、/user/af/32等URL
其中带占位符的URL是Spring3.0新增的功能。通过@PathVariable可以将URL中的占位符参数版顶到控制器处理的方法入参当中。
@RequestMapping的value、method、params及headers分别表示请求URL、请求方法、请求参数及报文头的映射条件。它们之间是与的关系,联合使用可以让请求映射更加精确化。
请求处理方法签名详解
【未完待续】
- SpringMvc 学习笔记-------springmvc框架
- SpringMVC框架学习
- springMVC框架学习
- springMVC框架学习笔记
- Springmvc 框架学习-- 基础知识
- springMVC-学习总结-框架
- SpringMVC框架学习笔记
- springmvc学习-框架原理图
- SpringMVC框架学习总结
- springMVC 框架搭建学习
- SpringMVC框架学习笔记
- SpringMVC学习(一)--框架搭建
- SpringMvc[学习手记]-框架搭建
- springMVC + mybatis + bootstrap 框架学习
- springmvc+mybatis框架学习总结
- 【springmvc学习】框架初步了解
- Springmvc框架搭建与学习
- 【框架学习】SpringMVC请求处理
- Cocos2dx 3.0 在Windows 平台搭建Cocos2d-x Android开发环境
- FireFox/IE(ClearAuthenticationCache)清除HTTP基本认证实现登出注销
- 【项目总结(二)】--关键帧Matlab提取 K-Means聚类算法算法总结与实现
- 【测试】android Monkey
- android.view.animation译
- springMVC框架学习
- mtk如何新增一个摄像头
- Eclipse去除js(JavaScript)验证错误
- Perl,第一种后现代计算机语言
- mongodb 驱动 在 xampp里配置
- QT中使用QCalendarWidget日历
- 【codeforces】2014 Asia Xian Regional Contest G The Problem to Slow Down You 【Palindromic Tree】
- UVA - 408 Uniform Generator 公式
- PHP合并、追加与连接数组