过滤器(防止乱码)

Posted 走在一线的码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器(防止乱码)相关的知识,希望对你有一定的参考价值。

 1 package cqvie.yjq.filter;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13 
14 public class EncodingFilter1 implements Filter {
15 
16     public void destroy() {
17 
18     }
19 
20     public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain)
21             throws IOException, ServletException {
22 
23         //1.首先ServletRequest转换为HttpServletRequest
24         HttpServletRequest request = (HttpServletRequest) arg0;
25         //2.把ServletResponse转换为HttpServletResponse
26         HttpServletResponse response = (HttpServletResponse) arg1;
27         //3.得到当前的请求方式
28         String method = request.getMethod();
29         //4.判断
30         if(method.toUpperCase().equals("POST")) {
31             //是post请求时,处理乱码
32             request.setCharacterEncoding("UTF-8");
33             //放行
34             chain.doFilter(request, response);
35         } else {
36             chain.doFilter(request, response);
37         }
38     }
39 
40     public void init(FilterConfig arg0) throws ServletException {
41 
42     }
43 
44 }
 1 <!-- 为了防止乱码,基于web.xml中的部分关于过滤器的配置 -->
 2 <filter>
 3       <filter-name>EncodingFilter1</filter-name>
 4       <filter-class>cqvie.yjq.filter.EncodingFilter1</filter-class>
 5   </filter>
 6   
 7   <filter-mapping>
 8       <filter-name>EncodingFilter1</filter-name>
 9        <!-- 所有路径的文件 -->
10       <url-pattern>/*</url-pattern>
11   </filter-mapping>
web.xml

 

以上是关于过滤器(防止乱码)的主要内容,如果未能解决你的问题,请参考以下文章

web.xml配置编码过滤器解决中文乱码问题

使用底部导航栏防止片段刷新

使用导航从一个片段导航到另一个片段后,防止后按工作

第二讲:编码详解,防止中文乱码

防止导航到同一个片段

在后台堆栈中多次防止相同的片段