JSP乱码过滤

今天在完成项目中的一个模块中,由jsp页面用ajax的方式传递值到后台,没想到中文传递过去一直是乱码.

                  本来在项目中,公司封装的框架不应该出现这种问题,结果还是出现了,大概的查看了下项目中封装的Filter 没有问题

,可是传值到后台总是乱码,把自己能想到的方法都用了还是不行,于是到百度提问..可是回答都不尽人意,都是说什么

                 request.setCharacterEncoding("utf-8");

                 这个顶用就不用那么麻烦了...后来还是用的最古老的方法  

                 String paremeter = new String(request.getParameter("paremeter ").getBytes("ISO-8859-1"),"utf- 8");

                

                 后来在网上找了一下,网上的方法还是比较多,找来总结一下,在以后再遇到的时候说不定用的上.

                 一般来说在jsp页面就要设置好页面编码 <%@ page language="java" pageEncoding="UTF-8"%

                  然后可以使用Filter 来进行过滤...

                  public class EncodeFilter implements Filter {
 

 public void destroy() {
  // TODO Auto-generated method stub

 }

 public void doFilter(ServletRequest arg0, ServletResponse arg1,
   FilterChain arg2) throws IOException, ServletException {
  arg0.setCharacterEncoding("utf-8");
  arg1.setCharacterEncoding("utf-8");
  arg2.doFilter(arg0, arg1);

 }

 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub

 }

}

  创建这样的一个类以后再到web.xml中注册一下就能自动去拦截过滤了

 <filter>
  <filter-name>EncodeFilter</filter-name>
  <filter-class>com.lovo.epet.util.EncodeFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>EncodeFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

                  

               如上,这就是一个最简单的过滤器,使用过滤器的好处就是、避免每页都要写request.setCharacterEncoding("UTF- 8"),

 如果导入了spring框架更简单,spring框架中有提供他封装好的过滤器。

               还有就是说修改tomcat的server.xml文件,因为tomcat内部使用的iso8859-1的编码处理,中文就会出现乱码,要想影响这个编码则需要在server.xml的Connector节点下增加useBodyEncodingForURI="true"属性配置,即可控制tomcat对get方式的汉字编码方式。

               还有就是说使用js提供的函数来进行一个解码,然后进行发送..这个试了一下没顶用,不知道是自己操作错误的原因还是什么造成.

               目前就总结这几总,等以后发现了新的方法再新增上去。

               --- tomcat的配置文件中

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

--在这里添加URIEncoding="UTF-8"/ 也可以修改... 一般都是项目在本地访问有问题 但是部署在其他地方出问题 就可以使用该方法

    

你可能感兴趣的:(乱码)