JavaWeb开发技术——过滤器基础

  1. 什么是web过滤器
    定义:过滤器是一个服务器端组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。
  2. 过滤器的工作原理
    在没有过滤器的情况下,用户可以直接访问Web资源;
    但是有过滤器的情况下用户不能直接访问Web资源,而是用户发送请求之后,先到过滤器,然后过滤器判断用户请求是否合理,合理的话过滤器才会将用户请求发送至Web资源;
    Web资源处理完请求之后发送资源响应到过滤器,过滤器才把web资源响应发送给用户。
  3. 过滤器的生命周期
    实例化————在Web容器通过Web.xml配置启动自动加载过滤器,只会启动一次
    初始化————过滤器启动成功,加载一些初始化信息,调用过滤器中的init()方法,进行相关操作,这个也是只执行一次
    过滤————调用过滤器中的doFilter()方法。执行多次,凡是过滤器获得请求都会执行doFilter()方法。
    销毁————调用destroy()方法,是在web容器关闭的时候执行,也即服务器关闭的情况下执行。
  4. 实例化创建一个过滤器
    创建的过滤器类实现java.servlet.Filter接口,要实现三个方法,三个方法的作用含义在下面分别介绍:
    init()——过滤器的初始化方法,web容器创建过滤器实例后将调用这个方法。这个方法可以读取web.xml文件中过滤器的参数
    doFilter()——这个方法完成实际的过滤器操作,是过滤器的核心方法。当用户请求访问和过滤器关联的URL时,web容器先调用过滤器的doFiler()方法。FilterChain参数可以调用chain.doFilter()方法,将请求传给下一个过滤器(或者目标资源),或者利用转发,重定向将请求转发到其他资源。
    destroy()——Web容器在销毁过滤器实力前调用该方法,在这个方法中可以释放过滤器占用的资源。
  5. web.xml中配置过滤器
<filter>
    <filter-name>FilterTest(过滤器的类名)</filter-name>
    <filter-class>cn.edu.nju.filter.FilterTest(过滤器类完整的名字包括包名)</filter-class>
</filter>
<filter-mapping>
    <filter-name>FilterTest(过滤器名,和上面那个标签中的filter-name一样)</filter-name>
    <url-pattern>/*(和该过滤器关联的.jsp文件,'/'代表当前路径,后面的*代表所有的.jsp页面,自己也可以指定特定的jsp页面和该过滤器关联,那么没有指定的页面就不会调用该过滤器)</url-pattern>
</filter-mapping>

对于指定的jsp页面和过滤器关联,那么在执行相应的jsp页面时就会调用过滤器里的相应方法。
以上就是和过滤器相关的基础知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值