CharacterEncodingFilter过滤器处理乱码
来源:互联网 发布:lg18650电池淘宝 编辑:程序博客网 时间:2024/05/21 19:26
CharacterEncodingFilter过滤器处理乱码
package cn.jbit.houserent.filter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
public class CharacterEncodingFilter implements Filter{
private String encoding = null;
@SuppressWarnings("unused")
private FilterConfig fg = null;
public void destroy() {
this.encoding = null;
this.fg = null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain fc) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse)res;
response.setContentType("text/html;charset="+this.encoding);
HttpServletRequest request = (HttpServletRequest)req;
HttpRequestWrapper hrw = new HttpRequestWrapper(request);
fc.doFilter(hrw, res);
/*if("POST".equalsIgnoreCase(request.getMethod()))
request.setCharacterEncoding(encoding);
else
request = new HttpRequestWrapper(request);
fc.doFilter(request, res);*/
}
public void init(FilterConfig fg) throws ServletException {
this.fg = fg;
this.encoding = fg.getInitParameter("encoding");
if(this.encoding == null || "".equals(encoding)) this.encoding = "UTF-8";
}
public class HttpRequestWrapper extends HttpServletRequestWrapper{
public HttpRequestWrapper(HttpServletRequest request){
super(request);
}
public String getParameter(String name){
String value = null;
value = this.encoding(((HttpServletRequest)this.getRequest()).getParameter(name));
return value;
}
public String[] getParameterValues(String name){
String[] values = ((HttpServletRequest)this.getRequest()).getParameterValues(name);
if(values != null){
int length = values.length;
for(int i = 0; i < length; i++){
values[i] = this.encoding(values[i]);
}
}
return values;
}
public String encoding(String value){
if(value != null){
try {
value = new String(value.getBytes("ISO-8859-1"),CharacterEncodingFilter.this.encoding);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return value;
}
}
}
web.xml配置
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
cn.jbit.houserent.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- CharacterEncodingFilter过滤器处理乱码
- Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)中文乱码问题
- SpringMVC中利用字符集过滤器characterEncodingFilter解决中文乱码
- 编码过滤器类CharacterEncodingFilter
- CharacterEncodingFilter 字符编码过滤器
- Spring字符集过滤器CharacterEncodingFilter
- Spring CharacterEncodingFilter字符集过滤器
- Spring字符集过滤器CharacterEncodingFilter
- Spring字符集过滤器CharacterEncodingFilter
- Spring字符集过滤器CharacterEncodingFilter
- Spring字符集过滤器CharacterEncodingFilter
- Spring字符集过滤器CharacterEncodingFilter
- Spring字符集过滤器CharacterEncodingFilter
- Tomcat中文乱码处理之URIEncoding、useBodyEncodingForURI及CharacterEncodingFilter
- 解决中文乱码用spring经典编码过滤器 org.springframework.web.filter.CharacterEncodingFilter
- 解决中文乱码用spring经典编码过滤器org.springframework.web.filter.CharacterEncodingFilter
- 解决中文乱码用spring经典编码过滤器org.springframework.web.filter.CharacterEncodingFilter
- Spring的编码过滤器CharacterEncodingFilter
- POJ-1003:Hangover
- 前缀递增和后缀递增区别
- 使用拦截器防止表单重复提交
- Sensor (draft)
- linux内核启动地址的确定
- CharacterEncodingFilter过滤器处理乱码
- java去注释
- Direc3D设备对象
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- javaMD5
- 详解Spring中bean的作用域
- Android中的MotionEvent
- 自定义标签
- MPT612—效率高达98%的太阳能转换芯片