开发过程中经常遇到关于页面的乱码问题,现在总结解决办法,一般方法:
一、新建项目时,检查项目的编码方式,应为UTF-8
二、HTML页面的编码格式也应设置为UTF-8
三、在servlet里关于response和request的设置
1) response.setContentType("text/html;Charset=utf-8");
2) response.setCharacterEncoding("UTF-8");
3) request.setCharacterEncoding("UTF-8");
四.doGet方式(如URL输入栏的提交)
1)如:String name = new String(username.getBytes("iso-8859-1"),"UTF-8");
先将中文字符串转化为字节,再将字节转化为指定的编码组合。
2)在servlet.xml配置文件中将71行配置(Apache7.0)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> 改为<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" UTIEncoding='UTF-8'/>
以上的方法在所有项目文件都一一设置是比较繁琐的,有没有什么比较简便的方法可以一劳永逸呢?
有,就是过滤器(Filter)。
过滤器作用:就是对所有匹配的servlet进行一些信息的过滤或加工。
新建过滤器:
1、新建过滤器关联的java类 实现filter接口
2、引入几个方法 init destroy dofilter 方法(重写)
3、在xml中进行配置
----待续------ 2018/04/12 -------第一稿