一.定义
<filter> <filter-name>encodingfilter</filter-name> <filter-class>com.my.app.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
二.作用
用于指定WEB容器的过滤器,在请求和响应对象在Servlet处理之前和之后,可以通过此过滤器对这两个对象进行处理。
三.备注
filter-class 中指定的过滤器类须继承 javax.servlet.Filter 具有须有以下三种方法
init(FilterConfig filterConfig):初始化;一般情况下时读取配置文件中的init-param参数值 如 filterConfig.getInitParameter("encoding")
doFilter(...):用于对request,response进行处理,并能过chain.doFilter(...) 交过下一个控制器
destroy():资源销毁
四.示例:如编码过滤器
web.xml配置
<filter> <filter-name>encodingfilter</filter-name> <filter-class>com.my.app.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
package com.myapp; 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; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * */ public class EncodingFilter implements Filter { /** * 配置中默认的字符编码 */ protected String encoding = null; protected FilterConfig filterConfig; /** * 当没有指定默认编码时是否允许跳过过滤 */ protected boolean ignore = true; /** * */ public EncodingFilter() { // TODO Auto-generated constructor stub } /* (non-Javadoc) * @see javax.servlet.Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub this.encoding=null; this.filterConfig=null; } /* (non-Javadoc) * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest hRequest=(HttpServletRequest)request; HttpServletResponse hResponse=(HttpServletResponse)response; //Conditionally select and set the character encoding to be used if(ignore || hRequest.getCharacterEncoding()==null){ String coding=selectEncoding(hRequest); if(coding!=null){ hRequest.setCharacterEncoding(coding); hResponse.setCharacterEncoding(coding); } } //将控制器传向下一个filter chain.doFilter(hRequest, hResponse); } /* (non-Javadoc) * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */ public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub this.filterConfig=filterConfig; this.encoding=filterConfig.getInitParameter("encoding"); System.out.println(this.encoding); String value = filterConfig.getInitParameter("ignore"); if (value == null) { this.ignore = true; } else if (value.equalsIgnoreCase("true")) { this.ignore = true; } else if (value.equalsIgnoreCase("yes")) { this.ignore = true; } else { this.ignore = false; } } protected String selectEncoding(ServletRequest request) { return (this.encoding); } }
init方法是在WEB应用启动就会调用,doFilter则是在访问filter-mapping映射到的url时会调用。
文章来源:http://blog.csdn.net/liaoxiaohua1981/article/details/6761053
相关推荐
web.xml 配置详解,需要的下载了。。。Web.xml常用元素和在java web规范中说明.按照listner,filter,servlet的顺序初始化
Tomcat 中 web.xml 文件是 Web 应用的核心配置文件,负责管理 Web 应用的生命周期、Servlet 的加载顺序、Filter 的配置等。下面对 web.xml 文件中的重要元素进行详细解释。 context-param 元素 context-param 元素...
"java学习-web.xml配置详解实用.pdf" 本文档主要介绍了Java Web应用程序中web.xml配置文件的详细解释。web.xml文件是Java Web应用程序的核心配置文件,用于定义Web应用程序的各种配置信息。 1. `<context-param>`...
用于 web.xml 配置详解。例如: <web-app> <display-name></display-name>定义了WEB应用的名字 <description></description> 声明WEB应用的描述信息 <context-param></context-param> context-param元素声明应用...
web.xml 中标签详解 web.xml 是一个配置文件,用于描述基于 Java Servlet 的 Web 应用程序的结构和组织方式。它是基于 XML 的配置文件,用于存储 Web 应用程序的配置信息。web.xml 文件中包含了一些基本的元素,...
"Web.xml配置文件详解" Web.xml配置文件是Java Web应用程序的核心配置文件之一,它用于定义Web应用程序的各种配置信息和参数。本文将对Web.xml配置文件的各个元素进行详细的解释和分析。 1. `<web-app>`元素 `<web...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
jsp的web.xml配置说明 Web.xml常用元素<web-app><display-name></display-name>定义了WEB应用的名字<description></description> 声明WEB应用的描述信息<context-param></context-param> context-param元素声明应用...
Web.xml 文件详解 Web.xml 文件是 Java Web 应用程序的部署描述符文件,用于描述 Web 应用程序的结构和配置。该文件必须以 XML 头开始,声明使用的 XML 版本和字符编码。 DOCTYPE 声明必须立即出现在 XML 头之后,...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
Hadoop 配置文件参数详解 Hadoop 配置文件是 Hadoop 集群的核心组件之一,它们控制着 Hadoop 集群的行为和性能。Hadoop 配置文件主要包括 core-site.xml、hdfs-site.xml 和 mapred-site.xml 三个配置文件。这些配置...
2.2.1. XML Schema中的秘密 ................................................................. 16 2.2.2. 扩展点,Configuration Point ....................................................... 17 2.2.3. ...
JavaWeb Servlet中Filter过滤器的详解 1.简述 Filter过滤器,对web服务器所有web资源进行过滤,从而实现一些特殊的功能(权限访问控制、过滤敏感词汇、压缩响应信息)。...启动服务器,读取配置文件web.xml,
Java 的 Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向抽象实现请求和响应的...
Spring注解详解 Spring框架中,注解(Annotation)是一种元数据,能够提供更多关于程序元素的信息,从而简化配置和编程。Spring从2.5版本开始支持注解,通过使用注解,可以使得Bean的配置更加简洁和灵活。 注册...
最后你还需要对比 jpivot.war 里的 web.xml 文件去修改你自己的 web.xml 文件。 2. 例子说明 一个Schema的xml文件,定义立方体;(feeSchema.xml) 一个jsp文件(fee.jsp),使用jpivot的标签(jp:mondrianQuery),...
<filter type="log4net.Filter.LevelRangeFilter"> </filter> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> [%t] %-5...
5.3.3struts.xml的配置 94 5.4值栈与ognl表达式 100 5.5struts2的标签库 103 5.5.1控制标签 103 5.5.2数据标签 104 5.5.3表单标签 105 5.5.4非表单ui标签 107 本章小结 108 课后练习 109 第6章struts2高级...