zoukankan      html  css  js  c++  java
  • [转]Java Web乱码过滤器

            本文转自http://blog.csdn.net/l271640625/article/details/6388690

            大家都知道,在jsp里乱码是最让人讨厌的东西,有些乱码出来的莫名其妙,给开发带来很大困扰,但搞一个乱码过滤器就一切都解决了,配置好之后,你并不需要在页面里进行转码之类的。

            首先,写一个过滤器类,如下:

     1 package 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   
    13 public class PageEncodingFilter implements Filter{  
    14   
    15     private String encoding = "UTF-8";  
    16     protected FilterConfig filterConfig;  
    17       
    18       
    19     public void init(FilterConfig filterConfig) throws ServletException {  
    20         this.filterConfig = filterConfig;  
    21         //本过滤器默认编码是UTF-8,但也可以在web.xml配置文件里设置自己需要的编码  
    22         if(filterConfig.getInitParameter("encoding") != null)  
    23             encoding = filterConfig.getInitParameter("encoding");  
    24     }  
    25   
    26     public void doFilter(ServletRequest srequset, ServletResponse sresponse,  
    27             FilterChain filterChain) throws IOException, ServletException {  
    28         HttpServletRequest request = (HttpServletRequest)srequset;  
    29         request.setCharacterEncoding(encoding);  
    30         filterChain.doFilter(srequset, sresponse);  
    31     }  
    32       
    33     public void destroy() {  
    34         this.encoding = null;  
    35     }  
    36   
    37 }  

            然后,在web.xml里配置,如下:

     1 <filter>  
     2         <filter-name>Encoding</filter-name>  
     3         <filter-class>filter.PageEncodingFilter</filter-class>  
     4         <init-param>  
     5             <param-name>encoding</param-name>  
     6             <param-value>UTF-8</param-value>  
     7         </init-param>  
     8     </filter>  
     9       
    10     <filter-mapping>  
    11         <filter-name>Encoding</filter-name>  
    12         <url-pattern>/*</url-pattern>  
    13     </filter-mapping>

            到这里,一切就OK了,你可以放心的写代码了,而不会担心出现乱码了。

  • 相关阅读:
    docker 原理之 mount namespace(下)
    docker 原理之 namespace (上)
    十种世界顶级思维方式
    Go 标准库 net
    斐波拉契序列的 Go 实现
    channel 是怎么走上死锁这条路的
    hello world 的并发实现
    使用链表和切片实现栈和队列
    非暴力沟通-读后感
    CCS
  • 原文地址:https://www.cnblogs.com/libook/p/3407456.html
Copyright © 2011-2022 走看看