[java]如何使用过滤器解决jsp乱码
来源:网络收集 点击: 时间:2024-03-03打开web项目,在src中新建一个类,规范一下编程习惯我们就把它放到一个包中去,项目右键新建“class”,包名填写例如“com.test.struts.filters”(习惯是域名反转),文件名首字母大写,例如“SetCharacterEncoding”。下面是类中的代码,实际上就是实现了Filter接口,重写了一下doFilter函数。
package com.test.hibernate.filters;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SetCharacterEncoding implements Filter {
/* (non-Javadoc)
* @see com.sun.net.httpserver.Filter#doFilter(com.sun.net.httpserver.HttpExchange, com.sun.net.httpserver.Filter.Chain)
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)srequest;
HttpServletResponse response = (HttpServletResponse)sresponse;
// 注意这里请求和响应都强制转化了一下
request.setCharacterEncoding(UTF-8);//设置请求编码“UTF-8”比较通用
response.setCharacterEncoding(UTF-8);//设置相应编码
chain.doFilter(srequest, sresponse);//转发请求
}
public void destroy() {
// TODO Auto-generated method stub
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}


web配置文件配置filter文件,打开web.xml文件,在web-app/web-app之间加入如下配置,filter/filter是设置类路径的,filter-mapping/filter-mapping是用来映射指定路径文件到filter的。
filter
filter-namesetEncoding/filter-name
filter-classcom.test.struts.filters.SetCharacterEncodingFilter/filter-class
!--这里还可以使用初始变量
init-param
param-namename/param-name
param-valuevalue/param-value
/init-param
再在SetCharacterEncoding.java的定义一个private String encoding = null;
在init函数中加一句this.encoding = filterConfig.getInitParameter(encoding);
--
/filter
filter-mapping
filter-namesetEncoding/filter-name!--这个名称和上面的要相同 --
url-pattern/*/url-pattern!--所有文件 --
/filter-mapping

配置完后运行一下项目就不再看到那烦人的乱码了!

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_228809.html