1、首先编写一个Java类的filter代码。操作步骤:
? ? ? ? ?(1)在myeclipse中新建一个java类,
?
? ? ? ? (2)单击“Add”按钮,在弹出来的对话框中“选择接口”文本框中输入Filter,
? ? ? ? ? ? ?并选择匹配好的类型javax.servlet
?
?
? ? ? ? ?(3)单击“OK”按钮返回"New Java Class"对话,然后单击“Finish”按钮,就可以看到创建的过滤器框架:
?
??
?
?
过滤器类:Encoding.java,代码如下:
package com; import java.io.IOException; import javax.servlet.*; public class Encoding implements Filter { protected String encoding=null; protected FilterConfig config; public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(request.getCharacterEncoding()==null){ //得倒指定的编码 String encode=getEncoding(); if(encode!=null){ //设置request的编码 request.setCharacterEncoding(encode); response.setCharacterEncoding(encode); } } chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { this.config=filterConfig; //得到web.xml中的配置编码 this.encoding=filterConfig.getInitParameter("Encoding"); } protected String getEncoding(){ return encoding; } }
?2、在web.xml文件写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制编码 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化参数 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
?说明:代码中红色部分(<init-param></init-param>之间的那段代码):<init-param>用于为过滤器指定初始化参数,它的子元素<param-name>指定参数的名字,子元素<param-value>指定参数的值。