Rising Sun

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  148 随笔 :: 0 文章 :: 22 评论 :: 0 Trackbacks
 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>wwwrootSPAN style="COLOR: #800000">display-name>
 3  <description>MySQL Test AppSPAN style="COLOR: #800000">description>
 4  <filter>
 5    <filter-name>setCharacterEncodingFilterSPAN style="COLOR: #800000">filter-name>
 6    <display-name>setCharacterEncodingFilterSPAN style="COLOR: #800000">display-name>
 7    <description>setCharacterEncodingFilterSPAN style="COLOR: #800000">description>
 8    <filter-class>cn.com.jsp.SetCharacterEncodingFilterSPAN style="COLOR: #800000">filter-class>
 9    <init-param>
10      <param-name>encodingSPAN style="COLOR: #800000">param-name>
11      <param-value>GBKSPAN style="COLOR: #800000">param-value>
12    SPAN style="COLOR: #800000">init-param>
13  SPAN style="COLOR: #800000">filter>
14  <filter-mapping>
15    <filter-name>setCharacterEncodingFilterSPAN style="COLOR: #800000">filter-name>
16    <url-pattern>/*SPAN style="COLOR: #800000">url-pattern>
17  SPAN style="COLOR: #800000">filter-mapping>
18……
19SPAN style="COLOR: #800000">web-app>

上面的代码我也没更改什么,看了后,了解了其中的些许流程。放入blog,留以备学吧
posted on 2006-07-27 15:11 brock 阅读(368) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问