package filter;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 CharEncoding implements Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding("GBK");
arg1.setCharacterEncoding("GBK");
arg2.doFilter(arg0, arg1);
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }}
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class CharEncoding implements Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding("GBK");
arg1.setCharacterEncoding("GBK");
arg2.doFilter(arg0, arg1);
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }}
解决方案 »
- 有关网络爬虫速度
- 急 急 急
- java编程中遇到这个问题怎么解决,我是菜鸟,望大家帮帮
- 中文乱码问题
- 在线急求flow4j教程,最好是中文的,谢谢,QQ172947777 (50分)
- 大家救命啊,实在想不明白的一个javabean问题
- hibernate例子CaveatEmptor的问题
- 采购管理。。。。不会。。
- 求助:这个error问题出在哪里?javax.naming.NamingException: Exception creating DataSource: tyrex/jdbc/xa/EnabledDataSource
- 哪里有JSP+EJB开发系统的例子或相关资料?
- 急!安装J2EE时遇到的问题!!
- java的精髓是什么
我觉得应该是那个问题
private String oldEncoding = null; public CharacterEncodingHttpServletRequestWrapper(HttpServletRequest request,String encoding) {
super(request);
this.ecoding = encoding;
this.oldEncoding = request.getCharacterEncoding();
} public String getParameter(String value) {
try{
if((oldEncoding == null || isIOS88591(oldEncoding)) && super.getParameter(value)!=null){
return new String(super.getParameter(value).getBytes("iso-8859-1"),ecoding);
}
else{
return super.getParameter(value);
}
}
catch(Exception e){
e.printStackTrace();
return null;
}
} private boolean isIOS88591(String endcoding){
endcoding = endcoding.toLowerCase();
return endcoding.startsWith("iso")&& (endcoding.indexOf("8859") != -1) && endcoding.endsWith("1");
}
}
〔CharacterEncodingHttpServletResponseWrapper.java〕package creator.common.filter;import javax.servlet.http.*;public class CharacterEncodingHttpServletResponseWrapper extends HttpServletResponseWrapper { private String ecoding = null; public CharacterEncodingHttpServletResponseWrapper(HttpServletResponse response,String encoding) {
super(response);
this.ecoding = encoding;
} /* (non-Javadoc)
* @see javax.servlet.ServletResponse#setContentType(java.lang.String)
*/
public void setContentType(String value) {
super.setContentType("text/html;charset="+ecoding);
}}
〔CharsetEncodingFilter.java〕package creator.common.filter;import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class CharsetEncodingFilter implements Filter {
private FilterConfig config = null;
private String RequestEncoding = null;
private String ResponseEncoding = null; public void init(FilterConfig arg0) throws ServletException {
this.config = arg0;
this.RequestEncoding = config.getInitParameter("RequestEncoding");
this.ResponseEncoding = config.getInitParameter("ResponseEncoding");
} /* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)
throws IOException, ServletException {
if(this.config == null){
return;
}
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res; CharacterEncodingHttpServletRequestWrapper mrequestw = new CharacterEncodingHttpServletRequestWrapper(request,ResponseEncoding);
CharacterEncodingHttpServletResponseWrapper wresponsew = new CharacterEncodingHttpServletResponseWrapper(response,ResponseEncoding);
fc.doFilter(mrequestw,wresponsew);
} public void destroy() {
}}
〔web.xml〕 <filter>
<filter-name>CharsetEncoding</filter-name>
<filter-class>javabean.com.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>RequestEncoding</param-name>
<param-value>iso-8859-1</param-value>
</init-param>
<init-param>
<param-name>ResponseEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>