SpringMVC学习
来源:互联网 发布:python 游戏编程 编辑:程序博客网 时间:2024/05/19 20:48
学习参考:
http://www.iteye.com/blogs/subjects/springmvc-explore。
两种模型
由于这两大角色的承载载体和编程语言实现基础都不同,因而也就产生了两种截然不同的针对表示层的解决方案的设计思路:
- 以服务器端应用程序为主导来进行框架设计
- 以浏览器页面组件(及其自身的事件触发模型)为主导来进行框架设计
后一种则被称之为组件模型,也有称之为事件模型。
SpringMVC 使用方法参数进行数据映射,Struct2使用类内部属性进行请求映射
SpringMVC映射使用注解,更简单一些,Struct还需要一个XML文件配置
MVC模型的各种形态
MVC模型是一种以服务器响应程序(也就是Controller)为核心进行程序设计的,因而所有的MVC框架的历史发展进程实际上是一个围绕着Controller不断进行重构和改造的过程
Servlet是MVC模型最为基本的表现形态
Servlet是基础,jsp也是个servlet。但是这个对于复杂的情况还是有点麻烦的,所以有了框架,封装。
HttpServletRequest对象 —— 主要用于处理整个Http生命周期中的数据。
HttpServletResponse对象 —— 主要用于处理Http的响应结果。
原生的servlet需要这个两个对象,Struct1也需呀,不过到了Struct2就不用了。
Structs2的贡献:
ThreadLocal模式。使得Controller成为一个线程安全的对象被Servlet模型所调用,这也就突破了传统Servlet体系下,Servlet对象并非一个线程安全的对象的限制条件。
传统servlet的问题是,请求-响应映射关系全部在web.xml中,会造成xml不断膨胀。
springMVC开始开始,先写死了处理的servlet,就是DispatcherServlet,然后还需要解决的问题
(1)能够根据一定的规则把不同的Http请求发送到处理的servlet对象上去
(2)核心servlet要建立一套完整的对于所有Http请求的规范化处理流程
规范化:
处理流程规范化是目的,对于处理过程的步骤划分和流程定义则是手段。因而处理流程规范化的首要内容就是考虑一个通用的Servlet响应程序大致应该包含的逻辑步骤:
- 步骤1 —— 对Http请求进行初步处理,查找与之对应的Controller处理类(方法)
- 步骤2 —— 调用相应的Controller处理类(方法)完成业务逻辑
- 步骤3 —— 对Controller处理类(方法)调用时可能发生的异常进行处理
- 步骤4 —— 根据Controller处理类(方法)的调用结果,进行Http响应处理
- 步骤1 —— HandlerMapping
- 步骤2 —— HandlerAdapter
- 步骤3 —— HandlerExceptionResolver
- 步骤4 —— ViewResolver
SpringMVC的两个容器,首先spring框架有个容器,初始化这些service daos beans这些spring一般的东西,SpringMVC有一个自己的子容器,
但是以spring框架的容器为上下文,是子容器,初始化了SpringMVC这个框架需要的内容,一般就是一些组件,然后在DispatcherServlet指定默认行为,
初始化就完成了,可以用了。
- SpringMVC学习--springmvc原理
- 【SpringMVC学习】SpringMVC介绍
- SpringMVC学习--springmvc原理
- SpringMVC学习
- springmvc学习
- springmvc学习
- SpringMVC学习
- SpringMVC学习
- SpringMVC学习
- SpringMVC 学习
- springmvc学习
- springmvc学习
- SpringMVC学习
- SpringMvc学习
- SpringMvc学习
- springmvc学习
- Springmvc学习
- springMVC学习
- Jacobi迭代法的C++代码实现
- ContentProvider和Uri详解
- 录制badboy脚本的时候弹出脚本错误
- java
- Chrome开发者工具不完全指南(一、基础功能篇)
- SpringMVC学习
- STL学习
- cisco lan switching cli
- JPA
- HDU5443 线段树 + 裸 + 求任意区间最大值
- xtype属性整理
- Maven package war包时,指定本地jar包
- 轮盘赌算法
- 【图】:有向图中两点间的路径