为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

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

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

课程讲师:Fcming

课程内容:


1.定义

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

2.过滤器工作原理

https://img1.sycdn.imooc.com/635a9b9300014b1c07760267.jpg


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中过滤器定义的先后顺序组装成一条链

https://img2.sycdn.imooc.com/635a9bad00014d7b07000396.jpg


6.过滤器分类

Servlet2.5分为:

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

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

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

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


Servlet3.0加入:

ASYNC:支持异步处理


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


课程收获:

https://img4.sycdn.imooc.com/635a9bfd00019bd609370551.jpg



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消