您的位置:首页 > 其它

过滤器解决Servlet中文乱码

2014-08-15 11:55 281 查看
一、问题描述: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)

<!-- 过滤器,将此代码放在</web-app>之上-->

<filter>

<filter-name>ServletFilter </filter-name>

<filter-class>filter.ServletFilter </filter-class>

</filter>

<filter-mapping>

<filter-name>ServletFilter </filter-name>

<servlet-name>*</servlet-name>

</filter-mapping> <!-- 这个过滤器可以过滤所有的文件-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: