JSP笔记——8.Filter介绍

跟它的名字一样,filter能够拦截特定的用户请求或者相应,并对这些东西进行处理。虽然很少用,不过也可以对request进行response。filter可以拦截多个请求相应,一个请求响应也可以被多个filter拦截。使用filter只需要创建filter处理类,然后在xml中配置filter。


创建filter类

必须实现Filter接口,里面要有三个方法:init用于初始化filter;destroy用于销毁filter前完成某些资源的回收;doFilter实现过滤功能。因为filter是处理链中的一部分,因此要有chain.doFilter这个方法。在这个方法之前是request预处理,这个方法之后是response后处理。


配置Filter

因为filter是servlet增强版,所以配置上也是比如出一辙,filter中配置name跟class,filter-mapping中配置name跟url(同样也可以通过注解配置,但是太不人性化了)。

filter与servlet只是,filter的doFilter方法里面多了一个FilterChain参数,这个参数可以决定是否放行request请求。实际开发中可以把多个servlet中的相同代码拿到filter中(但是必须保证顺序)。Filter也可以在xml中设置初始参数。具体做法与servlet一样。也是通过init-param子元素来实现。


使用URL Rewrte实现网站伪静态

由于搜索引擎优先考虑收录静态html页面,因此有必要将jsp伪装成静态的。用filter拦截所有发向html的请求,然后转发到jsp即可。可以使用4.0.3版本的Url Rewrite开源项目来实现伪静态。下载好对应的jar包,放在web-inf/lib下,然后在xml中配置名为UrlRewriteFilter的过滤器,对应的类在那个jar包中,url样式为/*表示拦截所有请求。重点是:还要在web-inf路径下增加urlrewrite.xml文件,该文件定义了伪静态的映射规则,规则是基于正则表达式的。参考文档1参考文档2

时间: 2024-12-25 14:17:26

JSP笔记——8.Filter介绍的相关文章

JSP笔记——9.Listener介绍

Listener可以用来监听不同的web事件.使用Listener,首先要有Listener实现类,然后要在web.xml中配置Listener(或者通过注解).常用的Web事件监听器接口如下: ServletContextListener:监听web应用的启动和关闭 ServletContextListener:监听ServletContext范围(application)内容属性的改变 ServletRequestListener:监听用户请求 ServletRequestAttribute

[Java] JSP笔记 - Filter 过滤器

一.什么是Web过滤器 Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充. Servlet 过滤器是可插入的 Web 组件,它允许我们实现 Web 应用程序中的预处理和后期处理逻辑.过滤器支持 servlet 和 JSP 页面的基本请求处理功能,比如日志记录.性能.安全.会话处理.XSLT 转换,等等. 过滤器最初是随 Java Servlet 2.3 规范发布的. Servlet 过滤器是什么?Servlet 过滤器是

Filter介绍,运行顺序,实例

Filter介绍 Filter可觉得是Servlet的一种"变种",它主要用于对用户请求进行预处理,也能够对HttpServletResponse进行后处理,是个典型的处理链. 它与Servlet的差别在于:它不能直接向用户生成响应. 完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对server响应进行后处理. Filter有例如以下几个用处. 在HttpServletRequest到达Servlet之前,拦截客户的H

Filter介绍,执行顺序,实例

Filter介绍 Filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Servlet的区别在于:它不能直接向用户生成响应.完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理. Filter有如下几个用处. 在HttpServletRequest到达Servlet之前,拦截客户的HttpServ

PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装

PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装 作者:罪惡 发布于:2011-4-9 19:15 Saturday PHP教程 最近学习并在项目中运用了PHPUnit做自动化测试,我将在博客上基于我的PHPUnit学习笔记进行连载,详细的介绍这个自动化测试框架. 笔记内容基本上基于PHPUnit的官方文档和例子,里面加上我自己理解的翻译和配合描述代码.本笔记使用的PHPUnit版本为3.5.13, 测试平台为ubuntu10.10 PHP5.3.3 什么是PHPUnit? PH

C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理

一.MFC概念和作用 1.全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的执行流程 MFC就是一个库(动态库,静态库) MFC还是一个程序框架 2.为什么使用MFC 基于框架编程,提高工作效率,减少开发周期,节约开发成本. 二.几个重要的头文件 afx.h    -绝大部分类的声明头文件 afxwin.h -包含了afx.h和windows.h afxext.h -提供了扩展窗口

Filter 介绍

Filter 可认为是 Servlet 的一种加强版,它主要用于对用户请求进行预处理,也可以对 HttpServletResponse 进行后处理,是个典型的处理链. Filter 也可对用户请求生成响应,这一点与 Servlet 相同,但实际上很少会使用 Filter 向用户请求生成响应.使用 Filter 完整的流程是:Filter 对用户请求进行预处理,接着将请求交给 Servlet 进行处理并生成响应,最后 Filter 再对服务器响应进行后处理. Filter 有如下几个用处: 1.在

Apache Shiro学习笔记(六)Servlet3.0 Filter介绍

鲁春利的工作笔记,好记性不如烂笔头 Filter接口 Filter也称之为过滤器,通过Filter对所有web资源(例如Jsp, Servlet, 静态文件等)进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等. package javax.servlet; /**  * A filter is an object that performs filtering tasks on either the  * request to a resource

SSH框架学习笔记(二)----Filter,Listener以及JSP的新特性

Fileter:对用户请求进行预处理,接着讲请求交给Servlet进行处理并生成响应,最后在对服务器响应进行后处理. 用处: 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据 在HttpServletResponse到达客户端之前,拦截HttpServletResponse 根据需要检查HttpServletResponse,也可以