Filter 处理 Java 乱码问题

代码
1 package com.denley.util;
2
3  import java.io.IOException;
4
5  import javax.servlet.Filter;
6  import javax.servlet.FilterConfig;
7  import javax.servlet.ServletException;
8 import javax.servlet.ServletRequest;
9
10 import javax.servlet.ServletResponse;
11 import javax.servlet.FilterChain;
12
13 public class SetCharacterEncodingFilter implements Filter {
14
15 protected FilterConfig filterConfig;
16 protected String encodingName;
17 protected boolean enable;
18
19 public SetCharacterEncodingFilter() {
20 this.encodingName = "UTF-8";
21 this.enable = false;
22 }
23
24 public void init(FilterConfig filterConfig) throws ServletException {
25 this.filterConfig = filterConfig;
26 loadConfigParams();
27 }
28
29 private void loadConfigParams() {
30 this.encodingName = this.filterConfig.getInitParameter("encoding");
31 String strIgnoreFlag = this.filterConfig.getInitParameter("enable");
32 if (strIgnoreFlag.equalsIgnoreCase("true")) {
33 this.enable = true;
34 } else {
35 this.enable = false;
36 }
37 }
38
39 public void doFilter(ServletRequest request, ServletResponse response,
40 FilterChain chain) throws IOException, ServletException {
41 if (this.enable) {
42 request.setCharacterEncoding(this.encodingName);
43 response.setCharacterEncoding(this.encodingName);
44 }
45 chain.doFilter(request, response);
46 }
47
48 public void destroy() {
49 }
50
51 }
52

 

 

 

代码
1 <filter>
2 <filter-name>SetCharacterEncoding</filter-name>
3 <filter-class>com.denley.util.SetCharacterEncodingFilter</filter-class>
4 <init-param>
5 <param-name>encoding</param-name>
6 <param-value>UTF-8</param-value>
7 </init-param>
8 <init-param>
9 <param-name>enable</param-name>
10 <param-value>true</param-value>
11 </init-param>
12 </filter>
13 <filter-mapping>
14 <filter-name>SetCharacterEncoding</filter-name>
15 <servlet-name>action</servlet-name>
16 </filter-mapping>

 

加入Java代码 和 web.xml 代码 就OK了

posted @ 2010-08-11 15:18  DenleyFu  阅读(202)  评论(0编辑  收藏  举报