[java]如何使用过滤器解决jsp乱码

2025-09-23 05:24:24

1、打开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

}

}

[java]如何使用过滤器解决jsp乱码

[java]如何使用过滤器解决jsp乱码

2、web配置文件配置filter文件,打开web.xml文件,在<web-app></web-app>之间加入如下配置,<filter></filter>是设置类路径的,<filter-mapping></filter-mapping>是用来映射指定路径文件到filter的。

<filter>

  <filter-name>setEncoding</filter-name>

  <filter-class>com.test.struts.filters.SetCharacterEncodingFilter</filter-class>

  <!--这里还可以使用初始变量

  <init-param>

  <param-name>name</param-name>

  <param-value>value</param-value>

  </init-param>

  再在SetCharacterEncoding.java的定义一个  private String encoding = null;

在init函数中加一句this.encoding = filterConfig.getInitParameter("encoding");

  -->

  </filter>

  <filter-mapping>

  <filter-name>setEncoding</filter-name><!--这个名称和上面的要相同  -->

  <url-pattern>/*</url-pattern><!--所有文件  -->

  </filter-mapping>

[java]如何使用过滤器解决jsp乱码

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

[java]如何使用过滤器解决jsp乱码

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢