小菜毛毛技术分享

与大家共同成长

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
乱码是j2ee中一个比较常见的问题。遇到1,2个情况下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")来解决。遇到多的情况下,就最好用过滤器了。
1个过滤器只需要注意2个地方,类和在web.xml上面的发布。

1。在web.xml上面的发布如下:
<filter>
      
<filter-name>SetCharsetEncodingFilter</filter-name //这个是类名
      
<filter-class>org.SetCharacter</filter-class>        //这个是类的位置
      
<init-param>
          
<param-name>encoding</param-name>
          
<param-value>utf-8</param-value>
      
</init-param>
  
</filter>
  
<filter-mapping>
      
<filter-name>SetCharsetEncodingFilter</filter-name>
      
<url-pattern> /* </url-pattern>   //这个代表所有的文件遇到过滤器都要被拦截
  </filter-mapping>
注意配置文件之中:<filter-class> com.struts.common.SetCharacterEncodingFilter </filter-class>这是文件的位置
2。过滤的这个类如下:
import   java.io.IOException; 

import   javax.servlet.Filter; 
import   javax.servlet.FilterChain; 
import   javax.servlet.FilterConfig; 
import   javax.servlet.ServletException; 
import   javax.servlet.ServletRequest; 
import   javax.servlet.ServletResponse; 

public   class   SetCharacterEncodingFilter   implements   Filter   
protected   String   encoding   =   null
protected   FilterConfig   filterConfig   =   null
protected   boolean   ignore   =   true

public   void   init(FilterConfig   filterConfig)   throws   ServletException   
this.filterConfig=filterConfig; 
this.encoding=filterConfig.getInitParameter( "encoding "); 
String   value
=filterConfig.getInitParameter( "ignore "); 
if(value==null
this.ignore=true
else   if(value.equalsIgnoreCase( "true ")) 
this.ignore=true
else 
this.ignore=false
}
 

public   void   doFilter(ServletRequest   request,   ServletResponse   response,   FilterChain   chain)   throws   IOException,   ServletException   
//   TODO   自动生成方法存根 
if   (ignore   ||   (request.getCharacterEncoding()   ==   null))   
String   encoding   
=   selectEncoding(request); 
if   (encoding   !=   null
request.setCharacterEncoding(encoding); 
}
 
chain.doFilter(request,   response); 
}
 

public   void   destroy()   
//   TODO   自动生成方法存根 
this.encoding   =   null
this.filterConfig   =   null
}
 

protected   String   selectEncoding(ServletRequest   request)   
return   (this.encoding); 
}
 
}
 

注意:COPY我的代码的时候记得吧字符串变量后的空格去掉
posted on 2010-01-11 09:41 小菜毛毛 阅读(329) 评论(0)  编辑  收藏 所属分类: J2EE相关技术与框架

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


网站导航: