首先:定义一个类CharsetEncodingFilter让它实现javax.servlet.Filter接
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*; // For Date class
String encoding;
//定义一个成员变量用于在init()方法里得到配置文件里<init-param>中对应 <paramname>encoding</param-name> 的 <param-value>GB18030</param-value>值;其中GB18030值可以更改比如gbk等;
public class CharsetEncodingFilter implements javax.servlet.Filter {
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws ServletException, IOException {
//1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
HttpServletRequest request = (HttpServletRequest)request;//如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中无法得到的方法,就要把此request对象构造成HttpServletRequest。
request.setCharacterEncodeing(encoding);
chain.doFilter(request,response);
//2.调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
}
public void init(FilterConfig config)throws ServletException {
encoding = FilterConfig.getInitParameter("encoding");//FilterConfig对象具有一个getInitParameter方法,它能够访问部署描述符件 //(web.xml)中分配的过滤器初始化参数
}
public void destroy() {}
}
然后在配置文件web.xml里添加: (请注意,过滤是在serlvet规范2.3版中初次引入的。因此,web.xml文件必须使用DTD的2.3版本。)
<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.util.filter.CharsetEncodingFilter</filter-class>//class必须是完整路径
<init-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>//表示对所有jsp文件有效
filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素:
icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。
filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。
display-name 这是一个可选的元素,它给出IDE使用的短名称。
description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。
filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。
init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读
发表评论
-
Log4j(1)
2007-07-16 11:40 5621、 Log4j是什么? Log4j可以帮助调试(有时候 ... -
Ant
2007-07-16 11:42 539ant使用教程 Ant是什么? Ant是一种基 ... -
Log4j(2)
2007-07-16 17:07 585Log4j由三个重要的组件 ... -
java基础
2007-07-18 16:50 659第一,谈谈final, finally, finalize的区 ... -
spring hibernate struts异常解决办法
2007-07-20 09:56 5441。Caused by: java.lang.NoClassD ... -
eclipse3.2.0+myeclipse5.5.1开发struts1.2+spring2.0+hibernate3.1
2007-07-20 13:37 6451.首先新建一个Web工程2.添加Struts框架1.2版本3 ... -
Java.io包
2007-08-14 10:23 5761.1 以字节为导向的stream 以字节为导向的str ... -
struts中javascript验证登陆
2007-08-21 10:57 533<script type="text/java ... -
Validator验证框架使用教程
2007-08-21 16:05 564Terry原创,转载请 ... -
Struts:与Tiles框架的第一次亲密接触
2007-08-22 10:37 8711.在你的struts配置文件struts-config.x ... -
简单工厂模式与工厂方法模式的比较
2008-03-31 09:20 558在OO设计领域,我们知 ... -
简单工厂模式,工厂方法模式和抽象工厂模式的区别
2008-04-01 11:37 545我记得看的阎宏发表在天极网上的文章上举的例子挺好的,他以一个后 ... -
JAVA中获取年月日
2008-04-22 14:48 3319Java 语言提供了许多处理日期的工具。其中一些工具在其他语言 ... -
jsp内置對象
2008-04-27 23:00 548一般来说,我们在使用Struts时,如果要在JSP隐式的传 ... -
spring+javamail
2008-10-08 19:02 5951.首先必须要有spring.jar, mail.jar, c ... -
Spring对IBatis的支持
2008-10-09 15:06 595Spring对IBatis提供了完善的内建支持。使用Sprin ... -
spring+ibatis实例
2008-10-09 16:18 2699首先需要以下这些jar包:commons-dbcp.jar, ... -
jboss虚拟镜像自动部署
2008-12-25 11:04 7141.修改C:\jboss-4.0.5.GA\server\de ... -
Spring配置初始化ApplicationContext
2008-12-30 11:36 5581. 在struts-config.xml里,以插件的形式 ... -
写自定义标签时标记attribute里rtexprvalue的用法
2008-12-31 14:39 465其实以前也有写过自定义标签, 但是没有注意到过<rtex ...
相关推荐
jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...
配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记<filter>和<filter-mapping>; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的...
在 WEB.XML文件里粘贴一下代码 可以解决乱码问题 <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.highcom.filter.EncodingFilter</filter-class> <param-name>encoding ...
使用filter过滤器解决中文乱码问题,包含源码,以及filter的配置,希望能帮上大家
利用过滤器(filter)解决myeclipse中的乱码问题,包含过滤器源代码,不懂的加Q9402055517。
本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 什么是过滤器 在Servlet中,过滤器是一个可以在客户端请求到达Servlet之前或之后执行某些操作的对象。过滤器可以在客户端请求到达Servlet之前对请求...
character-encoding-filter 是 Java Web 乱码过滤器。 web.xml <filter> <filter-name>character-encoding-filter</filter-name> <filter-class>...
本教程中以实际例子介绍了过滤器的运行方式,以JSP开发中常见的中文乱码过滤器和限抽客户机IP访问的二个例子,本教程中代码部分转载,都经过本人修改了其中错误,加了详细注释,保证可以正常运行,希望对大家有所帮助
使用该过滤器可以消除java web编程中的乱码问题,把包加入工程后只需在web.xml中设置一下过滤器的属性就可以了
JavaFilter自定义编码过滤器知识点 一、Filter接口和 FilterChain接口 在 Java 中, Filter 接口和 FilterChain 接口是 Servlet 规范中的两个重要组件。 Filter 接口用于定义一个过滤器, FilterChain 接口用于将...
用于中文乱码问题,仅限于表单提交,不适于JS提交,JS提交请自己另设response
(2)用过滤器解决request中文乱码问题。 (3)代码如下: package my; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ChineseFilter implements Filter { //定义了一个...
使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。
本文为大家分享了JSP用过滤器解决request中文乱码问题,具体内容如下 (1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter() 读取参数时,很容易出现中文乱码现象。 (2...
过滤中文字符,免出现乱码FILTER的JAR包,只要将其导入项目中便可使用
使用过滤器可以解决中文问题。当用户登录页面输入中文时,后台 Servlet 可能会出现乱码问题。这是因为 Servlet 默认使用 ISO-8859-1 格式编码,而中文需要使用 GBK 编码。使用过滤器可以将 ISO-8859-1 转码为 GBK,...
java中Filter过滤器处理中文乱码的方法,需要的朋友可以参考一下
定义一过滤器,实现Filtter接口 public class EncodingFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req,...
JAVA过滤器filter request.setCharacterEncoding仅对POST提交起作用,对GET提交还是会出现乱码问题
主要介绍了jsp中通过过滤器(Filter)解决JSP的Post和Request中文乱码问题的方法,需要的朋友可以参考下