手记

【金秋打卡】第1天 Java Web过滤器

课程名称:Java Web开发技术应用——过滤器

课程章节:第一章-第五章

课程讲师:Fcming

课程内容:


1.定义

是一个服务器端的组件,它可以截取用户端请求和响应信息,并对这些信息过滤。

2.过滤器工作原理


3.过滤器生命周期

实例化:在Web容器启动时,只实例化一次

初始化:加载一些初始化信息,调用init()方法,初始化只执行一次。Web容器创建过滤器实例后将调用这个方法,这个方法可以读取web.xml文件中过滤器参数。

过滤:执行doFilter()方法。这个方法完成实际的过滤操作。这个地方是过滤器的核心方法。当用户请求访问与过滤器关联的URL时,Web容器将先调用过滤器的doFilter方法。FilterChain参数可以调用chain.doFilter方法,将请求传给下一个过滤器或者目标资源,或利用转发,重定向将请求转发到其他资源。

销毁:执行destory()方法,在Web容器关闭时执行。Web容器在销毁过滤器实例前调用该方法,在这个方法中可以释放过滤器占用的资源。

4.Web.xml配置

<filter>
  <filter-name>Encoding</filter-name>
  <filter-class>com.imooc.sm.global.EncodingFilter</filter-class>
  初始化参数,可以是零对或者多对
  <init-param>
    <description>描述信息可以忽略或放在此位置</description>
    <param-name>ENCODING</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>Encoding</filter-name>
  当用户请求的URL和指定的URL匹配时,将触发过滤器工作
  <url-pattern>/*</url-pattern>
  可以是零对或者多对
  值为REQUEST,INCLUDE,FORWARD,ERROR
  默认为REQUEST
  <dispatcher>REQUEST</dispatcher>
</filter-mapping>


5.过滤器链

服务器会按照web.xml中过滤器定义的先后顺序组装成一条链


6.过滤器分类

Servlet2.5分为:

REQUEST:用户直接访问页面时,Web容器将会调用过滤器

FORWARD:目标资源是通过getRequestDispatcher("main.jsp").forward(request,response)访问时,该过滤器被调用

INCLUDE:目标资源是通过getRequestDispatcher("main.jsp").include(request,response)访问时,该过滤器被调用

ERROR:目标资源是通过声明式异常处理机制调用时,过滤器将被调用


Servlet3.0加入:

ASYNC:支持异步处理


@WebFilter用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体属性配置将相应的类部署为过滤器


课程收获:



0人推荐
随时随地看视频
慕课网APP