配置FILTER过滤管道,解决乱码问题(在服务器下配置,及在JBUILDER下配置)
2008-12-04 09:05
399 查看
一、首先写一个过滤的类
package com.test.util;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
public class EncodingFilter implements Filter {
private FilterConfig config = null;
//目标编码,建议用UTF-8、GB2312
private String targetEncoding = "ASCII";
//GBK UTF-8
public void init(FilterConfig config) throws javax.servlet.ServletException {
this.config = config;
//从配置文件中读取初始化参数(目标编码),如果注释掉这一句,则用本类中设定的编码ASCII
this.targetEncoding = config.getInitParameter("encoding");
}
/**
* doFilter
*
* @param servletRequest ServletRequest
* @param servletResponse ServletResponse
* @param filterChain FilterChain
* @throws IOException
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws
IOException, ServletException {
//控制台打印出目标编码类型
System.out.println("targetEncoding:" + targetEncoding + "/n");
//执行编码
servletRequest.setCharacterEncoding(targetEncoding);
filterChain.doFilter(servletRequest, servletResponse);
}
/**
* destroy
*
* @todo Implement this javax.servlet.Filter method
*/
public void destroy() {
config = null;
targetEncoding = null;
}
}
PS:以上代码是SUN公司给的两个例子中的一个
二、配置web.xml
<filter>
<description>EncodingFilter</description>
<display-name>EncodingFilter</display-name>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.test.util.EncodingFilter</filter-class>
<init-param>
<description>gb2312</description>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
以上就可以了,如果需要在JBUILDER 2006中配置,JAVA代码是一样的,主要是通过可视化窗口来配置web.xml其他步骤如下
1、双击你的建立的web module
2、在Structure窗口中双击Filters,再点add,添加一个Filters
3、然后会出现一个填写的窗口
Name: EncodingFilter
Filter class:com.test.util.EncodingFilter(此处选择你所新建的类)
Language:不管,默认
Display name:EncodingFilter(随便填写)
Description:EncodingFilter(随便填写)
4、然后在Structure窗口中展开你新建的EncodingFilter
5、下面会有一个Initialization Parameters,双击
6、点ADD,新建一个
7、再双击新建的进行编辑
Name:encoding
Value:gb2312
Dscription language:不管
Dscription:gb2312
8、保存
9、在Structure窗口中双击Filter Mappings
10、点击ADD,新建,再编辑
Filter name:选择你建立的Filter name
URL pattern:/*(此处代表整个网站)
Dispatcher:可以全选也可以不选
11、保存
以上步骤,整个JBUILDER 2006中的可视化窗口配置web.xml就完成了
呵呵,是不是很简单呢
有了这个就不需要每次接收变量的时候都加上new String(request.getParameter("").getBytes("iso-8859-1"),"gb2312");
这句话了
是不是很实用!
package com.test.util;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
public class EncodingFilter implements Filter {
private FilterConfig config = null;
//目标编码,建议用UTF-8、GB2312
private String targetEncoding = "ASCII";
//GBK UTF-8
public void init(FilterConfig config) throws javax.servlet.ServletException {
this.config = config;
//从配置文件中读取初始化参数(目标编码),如果注释掉这一句,则用本类中设定的编码ASCII
this.targetEncoding = config.getInitParameter("encoding");
}
/**
* doFilter
*
* @param servletRequest ServletRequest
* @param servletResponse ServletResponse
* @param filterChain FilterChain
* @throws IOException
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws
IOException, ServletException {
//控制台打印出目标编码类型
System.out.println("targetEncoding:" + targetEncoding + "/n");
//执行编码
servletRequest.setCharacterEncoding(targetEncoding);
filterChain.doFilter(servletRequest, servletResponse);
}
/**
* destroy
*
* @todo Implement this javax.servlet.Filter method
*/
public void destroy() {
config = null;
targetEncoding = null;
}
}
PS:以上代码是SUN公司给的两个例子中的一个
二、配置web.xml
<filter>
<description>EncodingFilter</description>
<display-name>EncodingFilter</display-name>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.test.util.EncodingFilter</filter-class>
<init-param>
<description>gb2312</description>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
以上就可以了,如果需要在JBUILDER 2006中配置,JAVA代码是一样的,主要是通过可视化窗口来配置web.xml其他步骤如下
1、双击你的建立的web module
2、在Structure窗口中双击Filters,再点add,添加一个Filters
3、然后会出现一个填写的窗口
Name: EncodingFilter
Filter class:com.test.util.EncodingFilter(此处选择你所新建的类)
Language:不管,默认
Display name:EncodingFilter(随便填写)
Description:EncodingFilter(随便填写)
4、然后在Structure窗口中展开你新建的EncodingFilter
5、下面会有一个Initialization Parameters,双击
6、点ADD,新建一个
7、再双击新建的进行编辑
Name:encoding
Value:gb2312
Dscription language:不管
Dscription:gb2312
8、保存
9、在Structure窗口中双击Filter Mappings
10、点击ADD,新建,再编辑
Filter name:选择你建立的Filter name
URL pattern:/*(此处代表整个网站)
Dispatcher:可以全选也可以不选
11、保存
以上步骤,整个JBUILDER 2006中的可视化窗口配置web.xml就完成了
呵呵,是不是很简单呢
有了这个就不需要每次接收变量的时候都加上new String(request.getParameter("").getBytes("iso-8859-1"),"gb2312");
这句话了
是不是很实用!
相关文章推荐
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解