天天看点

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

访问Tomcat

7

及以下版本时(HttpServeltRequest

请求

时)的中文乱码解决问题

  总的来说,乱码的解决方式是根据请求方式的不同而去选择取用何种方式解决棘手的乱码问题的。

  先说post方式提交到Tomcat服务器,Tomcat解析时出现的乱码问题,下面我们看一下请求时的流程以及代码实现:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题
访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

上面是请求是的页面,里面传递的是中文,用的form表单提交方式为method=”post”。

提交到指定的servlet去执行自身的service(HttpServletRequest request,HttpServletResponse response){

}方法,其方法体内部实现方式如下:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

这样的话我们接收到前台传递过来的参数对其进行打印,控制台打印的结果为:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

很明显的就是结果乱码,这种乱码的解决方式为:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

这里乱码问题已经解决,具体控制台打印信息不再展示,读者自行编码解决该问题。

  再说get方式请求时的乱码问题的解决。

   http://localhost:8080/twp/postGetTest.do?username=小狼人

  上面这个超链接就是我们的get方式提交的HttpServletRequest请求。

  参数是中文,我们来处理一下试试。如果说你的Tomcat解压之后只是在MyEclipse中进行了映射而没有对其配置信息做任何修改的话,那么我们访问

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

时也会出现乱码问题如下图所示:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

当我们采用解决post提交时的解决方式解决的时候,发现还是乱码:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

,这个解决不了get请求时的乱码问题,所以说,还得使用别的方式解决中文乱码问题。

  我们用到的最多的请求方式是post方式请求,post中文乱码很容易解决,虽然get没有post方式用的多,但是get方式提交的数据中文乱码的解决的难度比post要高。

第一种方式,较为简单的一种方式:

找到对应的tomcat的解压地址(解压版Tomcat),然后找到:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

该文件夹路径下的conf文件夹点进去,然后找到:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

server.xml文件,找到该文件后对其进行编辑,找到connector标签,对其进行修改:

修改之前:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

修改之后:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

  重新启动Tomcat,乱码问题剞劂,自行编码进行测试。

  第二种方式,就是不对Tomcat的配置文件进行修改,直接在代码中实现。这种方式需要将刚才配置的server.xml还原。

  这里的请求方式依然是通过超链接访问的get请求方式。其后端代码实现方式是:

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

,这样的话,get方式请求的中文乱码问题依然迎刃而解。

访问Tomcat7及以下版本时(HttpServeltRequest请求时)的中文乱码解决问题

今天分享的请求时后台接收数据的时候的中文乱码问题的解决,下次会风向响应式中文乱码问题。

上述问题中的重点是post方式提交参数时的中文乱码问题的解决。难点是get方式提交参数时中文乱码问题的解决。