SpringMVC总结

来源:互联网 发布:xbox软件 编辑:程序博客网 时间:2024/06/05 11:32

SpringMVC工作流程


执行流程图:
这里写图片描述


简述执行流程:
1.用户发送请求到前端控制器DispatcherServlet.
2.DispatcherServlet收到强求调用HandlerMapping处理器映射器.
3.处理器映射器找到对应的处理器,生成处理器对象和处理器拦截器(如果有则生成)一并返回给DispatcherServlet.
4.Dispatcher调用HandlerAdapter处理器适配器.
5.HandlerAdapter调用具体的处理器(Controller也叫后端控制器).
6.Controller执行完成返回ModelAndView.
7.HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet.
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器.
9.ViewReslover解析后返回具体的view.
10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中).
11.DispatcherServlet响应用户.


乱码问题的处理


post乱码问题的解决:
在web.xml配置文件中,添加过滤器
(springmvc中提供org.springframework.web.filter.CharacterEncodingFilter.class)

.   <filter>.       <filter-name>CharacterEncodingFilter</filter-name>.       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>.       <init-param>.           <param-name>encoding</param-name>.           <param-value>utf-8</param-value>.       </init-param>.   </filter>.   <filter-mapping>.       <filter-name>CharacterEncodingFilter</filter-name>.       <url-pattern>/*</url-pattern>.   </filter-mapping>

以上可以解决post请求乱码问题。


get乱码问题的解决:
对于get请求中文参数出现乱码解决方法有两个:
1.修改tomcat配置文件server.xml,添加编码与工程编码一致
大致在第64行:

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>

2.另外一种方法对参数进行重新编码:

String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码


SpringMVC与Struts2的主要区别

1.SpringMVC入口是一个servlet,即前端控制DispatcherServlet,而struts2的入口是一个filter过滤器.
2.SpringMVC是基于方法开发(一个url对应一个方法),传递参数是通过方法形参,可以设计为多例或单例(建议单例),struts2是基于类开发,传递参数通过类的属性,只能设计为多例.
3.struts2采用值栈存储请求和响应的数据,通过OGNL(Object-Graph Navigation Language的简称,对象图导航语言)存取数据,springMVC通过参数解析器对request对象内容解析成方法形参,将响应数据和页面封装到ModelAndView对象,最后又将模型数据通过request对象传输到页面.JSP解析器默认使用jstl.

简述SpringMVC的理解
(http://blog.csdn.net/pineapple0/article/details/40888153)

0 0
原创粉丝点击