encodefilter.java
来自「基于j2ee的物流软件」· Java 代码 · 共 88 行
JAVA
88 行
package com.wuliu.filter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
/*
* 过滤器BY VOID 1-11
*/
public class EncodeFilter implements Filter
{
public String encoding = "gbk";
private ServletContext sct;
public void destroy()
{
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest sreq, ServletResponse sres,
FilterChain chain) throws IOException, ServletException
{
HttpServletRequest hreq = (HttpServletRequest) sreq;
String method = hreq.getMethod();
if (method.equalsIgnoreCase("post"))
{
hreq.setCharacterEncoding(this.encoding);
} else
{
hreq = new EncodingFilter(hreq);
}
chain.doFilter(hreq, sres);
}
public void init(FilterConfig fconfig) throws ServletException
{
// TODO Auto-generated method stub
this.encoding = fconfig.getInitParameter("encoding");
sct = fconfig.getServletContext();
sct.log("过滤器[ " + fconfig.getFilterName() + "]已经初始化.");
}
private class EncodingFilter extends HttpServletRequestWrapper
{
HttpServletRequest request = null;
public EncodingFilter(HttpServletRequest request)
{
super(request);
this.request = request;
}
@Override
public String getParameter(String name)
{
String strname = request.getParameter(name);
String temp = null;
if (strname != null)
{
try
{
// 用ISO-8859-1的字符集格式获得,转换成默认字体集
temp = new String(strname.getBytes("ISO-8859-1"), encoding);
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
return temp;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?