A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一.配置web.xml文件,形势如下:
<filter>
<filter-name>filter</filter-name>
<filter-class>com.filter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意:1.filter与filter-mapping节点下的filter-name一定要一致。
     2.filter-class节点指的是过滤器的path
     3.url-pattern节点用来指定要过滤的页面,“\*”表示过滤所有页面。
二.编写实现了自java.servlet.Filter接口的过滤器,简单示例如下:
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;

public class SetCharacterEncodingFilter 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");
                arg2.doFilter(arg0, arg1);
        }

        public void init(FilterConfig arg0) throws ServletException {
                // TODO Auto-generated method stub
               
        }
}
三.过滤器完成了
  这样你的jsp项目就可以避免中文乱码了(由于项目本身设置不同,也许会用部分页面无法解决乱码,那么请尝试使用Sting的getBytes()方法来解决)。
  其实过滤器的作用还有很多这里只是简单的实现了过滤编码格式的问题,我们还可以用他控制页面的访问,等等……
  这是以前做项目遇到的一个问题,现在拿出来给大家分享一下。

5 个回复

正序浏览
黑马网友  发表于 2011-8-14 15:37:24
地板
[color=Red]不客气,我们在相互学习,共同进步嘛![/color]
回复 使用道具 举报
黑马网友  发表于 2011-8-14 14:08:14
报纸
自己尝试了一下,学习了,多谢。
回复 使用道具 举报
黑马网友  发表于 2011-8-12 20:39:44
板凳
[url]http://blog.csdn.net/wangfayinn/article/details/6682964[/url]
此页有对乱码问题的较为详细的解决方法。
回复 使用道具 举报
黑马网友  发表于 2011-8-12 20:04:57
藤椅

回复 沙发 的帖子

此过滤器只对post请求起到处理乱码的作用,如果想对get请求的参数进行乱码处理,可以写一个静态方法用来调用。方法如下:
package Filters;

import java.io.UnsupportedEncodingException;

public class doGetEncod {
        public static String changeEncod(String str){
                try {
                        str=new String(str.getBytes("ISO-8859-1"),"gbk");
                } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                }
                return str;
        }
}
值得注意的是:在处理乱码问题时,get请求和post请求是不一样的。
                             还有就是编码格式的设置也比较复杂,所以一定要一致,比如tomcat的配置文件server.xml的URIEncoding属性的设置,和页面编码的设置等。
回复 使用道具 举报
黑马网友  发表于 2011-8-12 11:42:55
沙发
使用Sting的getBytes()方法在什么地方使用呢,可以详细说一下吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马