一个character encoding filter

一个character encoding filter
 1 package cn.com.jsp;
 2
 3 import java.io.IOException;
 4 import javax.servlet.Filter;
 5 import javax.servlet.FilterChain;
 6 import javax.servlet.FilterConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.ServletRequest;
 9 import javax.servlet.ServletResponse;
10 import javax.servlet.UnavailableException;
11
12 public   class  SetCharacterEncodingFilter implements Filter  {
13      protected  String encoding  =   null ;
14      protected  FilterConfig filterConfig  =   null ;
15      protected  boolean ignore  =   true ;
16
17      public   void  destroy()  {
18          this .encoding  =   null ;
19          this .filterConfig  =   null ;
20     }

21
22      public   void  doFilter(ServletRequest request, ServletResponse response,
23                          FilterChain chain) throws IOException,
24             ServletException  {
25
26          //  Conditionally select and set the character encoding to be used
27          if  (ignore  ||  (request.getCharacterEncoding()  ==   null ))  {
28             String encoding  =  selectEncoding(request);
29              if  (encoding  !=   null {
30                 request.setCharacterEncoding(encoding);
31             }

32         }

33
34          //  Pass control on to the next filter
35         chain.doFilter(request, response);
36
37     }

38
39      public   void  init(FilterConfig filterConfig) throws ServletException  {
40
41          this .filterConfig  =  filterConfig;
42          this .encoding  =  filterConfig.getInitParameter( " encoding " );
43         String value  =  filterConfig.getInitParameter( " ignore " );
44          if  (value  ==   null {
45              this .ignore  =   true ;
46         }
  else   if  (value.equalsIgnoreCase( " true " ))  {
47              this .ignore  =   true ;
48         }
  else   if  (value.equalsIgnoreCase( " yes " ))  {
49              this .ignore  =   true ;
50         }
  else   {
51              this .ignore  =   false ;
52         }

53
54     }

55
56      protected  String selectEncoding(ServletRequest request)  {
57          return  ( this .encoding);
58     }

59
60 }


相应的web.xml文件里的配置如下:

 1 < web-app >
 2    < display-name > wwwroot SPAN style="COLOR: #800000">display-name >
 3    < description > MySQL Test App SPAN style="COLOR: #800000">description >
 4    < filter >
 5      < filter-name > setCharacterEncodingFilter SPAN style="COLOR: #800000">filter-name >
 6      < display-name > setCharacterEncodingFilter SPAN style="COLOR: #800000">display-name >
 7      < description > setCharacterEncodingFilter SPAN style="COLOR: #800000">description >
 8      < filter-class > cn.com.jsp.SetCharacterEncodingFilter SPAN style="COLOR: #800000">filter-class >
 9      < init-param >
10        < param-name > encoding SPAN style="COLOR: #800000">param-name >
11        < param-value > GBK SPAN style="COLOR: #800000">param-value >
12      SPAN style="COLOR: #800000">init-param >
13    SPAN style="COLOR: #800000">filter >
14    < filter-mapping >
15      < filter-name > setCharacterEncodingFilter SPAN style="COLOR: #800000">filter-name >
16      < url-pattern > /* SPAN style="COLOR: #800000">url-pattern >
17    SPAN style="COLOR: #800000">filter-mapping >
18 ……
19 SPAN style="COLOR: #800000">web-app >

上面的代码我也没更改什么,看了后,了解了其中的些许流程。放入blog,留以备学吧

你可能感兴趣的:(一个character encoding filter)