过滤器

yhl13773563078 2009-07-20 11:26:45
我用Struts中的ActionForm传递中文时总是出现乱码,听说要加一个过滤器,请问过滤器怎么写啊,请教了!!!谢谢!!!
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkchina 2009-07-23
  • 打赏
  • 举报
回复
学习了
yhl13773563078 2009-07-22
  • 打赏
  • 举报
回复
谢谢了啊。非常感谢
ovemoon 2009-07-21
  • 打赏
  • 举报
回复
你看下这样行么
public class CharsetFilter implements Filter{
private String charset=null;
public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletResponse resp=(HttpServletResponse)response;
HttpServletRequest requ=(HttpServletRequest)request;
requ.setCharacterEncoding(charset);
resp.setCharacterEncoding(charset);
chain.doFilter(request, response);
}
public void init(FilterConfig filterconfig) throws ServletException {
charset=filterconfig.getInitParameter("charset");

}


}
老张-AI 2009-07-21
  • 打赏
  • 举报
回复
参考楼上几个就行了

一定到到web.xml里面配置一下
pmlxp 2009-07-21
  • 打赏
  • 举报
回复
二楼的步骤正确
具体过滤器类的代码可以参考1楼和3楼的
cbdhxka 2009-07-21
  • 打赏
  • 举报
回复
package cn.com.aheadsoft.erp.util;

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 CharsetFilter implements Filter
{
protected FilterConfig filterConfig;

private String encoding = null;

public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
if (null == this.encoding)
{
this.encoding = "GBK";
}
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
}

public void destroy()
{
this.filterConfig = null;
}
}
gydonbeauty 2009-07-21
  • 打赏
  • 举报
回复
用下面的方法:

第一步:写一个过滤器的类,此类集成自Filter类 在此类的doFilter方法中写入下编码:
try{
arg0.setCharacterEncoding("GBK");
arg1.setCharacterEncoding("GBK");
arg1.setContentType("type=text/html;charset=GBK");
arg2.doFilter(arg0,arg1);
}catch(Exception e){
e.printStackTrace();
}

第二步:在项目的web.xml中加入如下配置信息
<filter>
<filter-name>类名</filter-name>
<filter-class>类的完整路径</filter-class>
</filter>
<filter-mapping>
<filter-name>类名</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样此过滤器就能过滤所有请求的编码

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧