页面间传参中文乱码

migo2008 2008-04-17 12:24:53
下面是我的filter

public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding(this.charset);
resp.setContentType("text/html;charset=gb2312");
chain.doFilter(req, resp);
}


在web.xml中也配置好了,字符集是gb2312。页面间的传参为乱码,我觉得是不是我的filter写得有问题,请教下如何更改?
...全文
143 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
migo2008 2008-04-17
  • 打赏
  • 举报
回复
thanks for ivorytower (雪地白狐)!
黑夜 2008-04-17
  • 打赏
  • 举报
回复
支持楼上说的
  • 打赏
  • 举报
回复
给你看看我传参时乱码的处理方法吧,你对照一下哪一步没有做好。

①修改Tomcat---->conf----->server.xml文件,在修改端口的标签后面加一行代码,如下:
   
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

②编写过滤器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 CharacterEncodingFilter implements Filter ...{

@Override
public void destroy() ...{
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig arg0) throws ServletException ...{
}

}

利用过滤器,把requst传递的中文参数都设成“UTF-8”编码。

③修改web.xml文件

打开项目里的web.xml文件,在前面加上如下代码:
   
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>com.v512.example.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意其过滤的URL为“/*”,表示当前的request请求。为了使设置生效,重起tomcat。

67,515

社区成员

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

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