1. SpringMVC总结
-Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一个组件
2.SpringMVC框架结构
1. 用户发送请求到前端控制器DispatcherServlet
2. DispatcherServlet收到请求调用HandlerMapping映射器
3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回 给DispatcherServlet。
4. DispatcherServlet通过HandlerAdapter处理器适配器调用处理器.
5. 执行处理器(Controller,也叫后端控制器)。
6. Controller执行完成返回ModelAndView传给viewReslover视图解析器。
7.HandlerAdapter将controller执行结果modelAndView返回给dispatcherServlet.
8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9. ViewReslover解析后返回具体View.
10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet响应用户
参数绑定
- HttpServletRequest
- HttpServletResponse
- HttpSession
- Mode/ModelMap
ModelMap是Model接口的实现类,通过Model或ModelMap向页面传递数据,如下:
//调用service查询商品信息
Items item = itemService.findItemById(id);
model.addAttribute(“item”, item);
页面通过${
item.XXXX}获取item对象的属性值。
使用Model和ModelMap的效果一样,如果直接使用Model,springmvc会实例化ModelMap。
如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView其# 本质都是使用Request对象向jsp传递数据。
5.绑定简单类型
@RequestParam
public String editItem(@RequestParam(value="ite# m_id",required=true) String id) {
}
springmvc与struts2不同
1、 springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。
2、 springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3、 Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。