初识SpringMVC
一、概念
1、SpringMVC和Struts2都是基于表现层的框架,属于Spring的一种
2、处理流程
- 用户发送请求到前段控制器 DispatcherServlet
- DispatcherServlet接收请求调用HandlerMapping处理器映射器
- 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
- DispatcherServlet通过(处理器适配器HandlerAdapter)来执行这个handler对象,得到一个结果对象ModelAndView
- 视图解析器ViewResolver来解析这个ModelAndView,返回一个具体的View对象
- DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
- DispatcherServlet响应用户
3、SpringMVC的三大组件
- 处理器映射器(HandlerMapping)
- 处理器适配器(ViewResolver)
- 视图解析器(ViewResolver)
4、对比Struts2
- springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器。
- springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
- Struts2采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面。Jsp视图解析器默认使用jstl。