SpringMVC流程及乱码处理

一.SpringMVC流程:
1.用户发送请求至前端控制器DispatherServlet
2.前端控制器DispatherServlet查找处理器映射器HandlerMapping
3.处理器映射器HandlerMapping将对应的处理器配置和拦截器配置返回给前端控制器DispatherServlet
4.前端控制器DispatherServlet请求相应的处理器适配器HandlerAdapt
5.处理器适配器HandlerAdapt经过处理器Handler适配,找到具体的处理器Controller
6.Controller执行完成返回模型和视图ModelAndView给处理器适配器HandlerAdapt
7.处理器适配器HandlerAdapt将模型和视图ModelAndView返回给前端控制器DispatherServlet
8.前端控制器DispatherServlet将ModelAndView传给视图解析器ViewResolver
9.视图解析器ViewResolver将ModelAndView解析后返回具体View
10.DispatherServlet根据View进行渲染视图(即将模型数据填充至视图中)
11.DispatherServlet响应用户


二.如何解决post请求中文乱码问题,get的有如何处理?
在web.xml中加入:
CharacterEncodingFilter过滤器

具体代码如下:



get请求中文乱码的解决方法有两种:
1.修改tomcat配置文件添加编码与工程编码一致,如下:
在eclipse工程中的servers中的server.xml中,修改如下位置:
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
2.对参数进行重新编码:
String userName = new String(request.getParameter("userName").getBytes("ISO8859-1"),"utf-8");

三.SpringMVC与Struts2的主要区别
1.springMVC的入口是servlet即前端控制器,而struts2入口是一个filter过滤器
2.springMVC是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例
3.struts采用值栈存储请求和响应的数据,通过OGNL存储数据,springMVC通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象,
最后又将模型数据通过request对象传输到页面。JSP视图解析器默认使用jstl
4.struts2有漏洞,springMVC目前还没有漏洞出现,如果使用struts2,建议下载最新包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值