过滤器解决Servlet中文乱码

一、问题描述:Servlet接收来自JSP页面的中文参数时,在Servlet文件中编写输出语句,控制台输出中文乱码。

过滤器解决方法:(这个问题我前面的文章已近解决,只不过你每次都要在Servlet文件中添加代码,很是麻烦)

1.过滤器在此方法的作用:每当程序要运行Servlet文件之前,都要去执行过滤器文件;在过滤器文件中编写要在Servlet文件之前运行的代码。

2.实现过程:分为两步(1.编写过滤器类。2.编写配置文件)

1.过滤器类

(1).在src文件下建个包  filter

(2).在此包下新建类     ServletFilter

(3).代码:

package 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 ServletFilter implements Filter {
public void doFilter(ServletRequest request,
            ServletResponse response,
            FilterChain chain) throws ServletException, IOException {
System.out.println("我是第一个过滤器!可以解决Servlet中文乱码");
   request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
     chain.doFilter(request,response); //访问下一个filter类,执行完所有的filter再去执行页面。
}
public void init(FilterConfig config) {   }
public void destroy() {}
}

2.配置web.xml文件(/WebRoot/WEB-INF/web.xml)


   
    ServletFilter 
    filter.ServletFilter 
 

 
    ServletFilter 
   
*
   
 

你可能感兴趣的:(java之前)