Filter的意思是可以在Servlet实例进行实质性的处理之前,起到“过滤”的作用.
一个Filter可以过滤一个或多个Servlet,Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
下面的例子演示记录客户端主机信息的Filter:
当前web应用的web.xml配置为:
最后用myeclipse插件自动部署到tomcat路径下,启动tomcat,在浏览器中输入
http://localhost:8080/Filter/ (Filter为此web应用名称)
可以在tomcat 目录的log目录下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
这表明logFilter已经被server调用成功.
当然在实际应用中filter还有其他用处,象登陆验证,编码转化等.
一个Filter可以过滤一个或多个Servlet,Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
下面的例子演示记录客户端主机信息的Filter:
程序代码: |
/** * 该实例演示记录客户端主机信息的Filter * www.javatx.cn */ package cn.javatx; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; /** * @author ljfan * */ public class logFilter implements Filter { private ServletContext context; /* (non-Javadoc) * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */ public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub context = arg0.getServletContext(); } /* (non-Javadoc) * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub context.log("[" + arg0.getRemoteHost() + "] request: " +((HttpServletRequest)arg0).getRequestURI()); arg2.doFilter(arg0, arg1); context.log("[" + arg0.getRemoteHost() + "] done"); } /* (non-Javadoc) * @see javax.servlet.Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub context = null; } } |
当前web应用的web.xml配置为:
程序代码: |
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>logFilter</filter-name> <filter-class>cn.javatx.logFilter</filter-class> </filter> <filter-mapping> <filter-name>logFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> |
最后用myeclipse插件自动部署到tomcat路径下,启动tomcat,在浏览器中输入
http://localhost:8080/Filter/ (Filter为此web应用名称)
可以在tomcat 目录的log目录下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
这表明logFilter已经被server调用成功.
当然在实际应用中filter还有其他用处,象登陆验证,编码转化等.
发表评论
-
Tag教程
2010-02-27 14:58 570EL 表达式语言 http://www.code-123. ... -
server.xml元素属性详解
2008-08-23 14:12 690属性名解析 server port ... -
虚拟主目录的建立方法
2008-08-23 14:18 757建立站点www.prodream.com的步骤: 1.建立需 ... -
JSP动作指令
2008-08-23 14:35 628一、Include指令<jsp:include>标 ... -
JSP动作标签
2008-08-23 15:29 784jsp指令负责告诉jsp引擎如何把页面翻译成servlet. ... -
JSP的useBean动作指令-JSP页面加载过程与scope取值
2008-08-23 15:34 1936Jsp的useBean动作标签的JSP页面加载过程 < ... -
JSP内部对象与方法详解
2008-08-23 16:10 706① out - javax.servlet.jsp.jsp ... -
基于端口的虚拟主机的建立(终于晓得为什么没有成功的原因了)
2008-08-23 16:31 731基于端口号的虚拟主机 server.xml中@一个<C ... -
servlet-动态页面
2008-08-27 10:15 761一、动态页面与动态html页面的区别<?xml:name ... -
tomcat-建立虚拟子目录
2008-08-27 14:16 7231.最简单的方法是,在主目录下建立一个文件夹,这个就是一个虚拟 ... -
Servlet运行过程
2008-08-28 09:03 1157一.servlet的特点 二、servlet程序查询数据库的 ... -
servlet配置运行
2008-08-28 15:25 1031一.servlet的注射与运行 二、serv ... -
JSP/Servlet:控制器(Servlet)
2008-09-08 23:54 1111Model 2 架構將應用程式的Web 層區分為Contro ... -
http协议请求行,状态行,响应状态行
2008-09-09 21:19 54541.请求行 格式:请求方式 资源路径 HTTP版本号<C ... -
过滤器
2008-09-11 21:54 609什么是过滤器, 过滤器不是servlet, 它是一个可以 传送 ... -
URLPath匹配原则
2008-09-11 22:50 789URLPath匹配原则 路 ... -
web.xml原理与元素解析
2008-09-11 22:56 1584(tomcat实际上是一个servlet容器,而Apache是 ... -
乱码问题
2008-09-11 23:03 819预备知识: 1.字节和un ... -
过滤器的使用场合
2008-09-11 23:18 863过滤器可以在请求到达JSP或Servlet之前或响应返 ... -
servlet常用类
2008-09-22 12:58 714Servlet常用接口public interface S ...
相关推荐
简单的servlet+Filter的例子,简单的结合这两个的例子。
servlet,lisenter ,filter 例子
servlet 过滤器例子 filterservlet 过滤器例子 filterservlet 过滤器例子 filter 如果是action 则需要改动url patten
里边用到了Servlet Filter Listener 很适合新手学习的小例子
java中有个Filter类专门从事这类工作,下面以一个简单的实例进行演示: 实例说明:假设有一个web应用软件,如果是正常途径登录,我们会在其session中放入一个“user”对象进行标记,在随后的会话中我们都用过滤器...
通常JavaWeb项目启动时我们需要... 下面代码是模拟初始化的一个示例,可以在控制台看到程序的输出,和Listener、Filter、Servlet的启动先后顺序,强烈建议跟我一样喜欢动手的Coder操作一下,废话不多说,直接上代码了。
使用 Filter 实现对 servlet 权限拦截,例子简单易懂
filter 简单小例子,入门例子,适合刚刚入门的人群,很简单,下载后直接放到eclipse中 就可以运行了
Filter模式,这个例子里面介绍了Filter设计模式的方式,模拟了web项目里面的Filter的原理,而且还模拟了struts2里面的设计模式,注释充分。
servlet 过滤器做的简单登陆demo 初学者的简单例子。
配置 DispatcherServlet (servlet 标签), 它是一个 Java Servlet 程序. 我们将它命名为 ideawu. 然后我们再配置 Servlet 映射(servlet-mapping 标签), 也就是你希望哪些请求被DispatcherServlet处理. 这里, 我们设置...
1.3 例子 ...........................................................................................................................................................13 1.4 Servlet 与其他技术的比较 .......
4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 servlet与tomcat 182 5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 ...
IBM Servlet Filter 课件,纯英文,包括例子。质量很高。
个人自己学习所做的DAO例子,希望对他人起到帮助。关键地方配有注释。
Servlet过滤器 初学 最简单例子 jsp Filter
4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 servlet与tomcat 182 5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 ...
4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 servlet与tomcat 182 5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 ...
4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 servlet与tomcat 182 5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 ...
...............................................................................................................................13 例子.....................................................................