Java Filter 过滤器

大学时代都没有接触过Java Web开发,有做的也只是用php做的一个acm的在线程序设计判题系统。所以对这方面的只是欠缺的很多,实习的时候对java的学习的也是限于J2SE,所以,有必要开始对Java web从头开始学习下。


今天看了imooc上关于java filter 的 一个课程,了解了以前以前不清楚的。


过滤器工作在服务器端。工作原理如下图



实例化 ,根据web.xml





过滤器的配置









概述

过滤器是工作在服务器端的只提供过滤功能。本身并不提供请求和相应的功能。

方法说明


init

/** 
 * 过滤器的初始化方法,web容器创建过滤器实例后调用这个方法,这个方法中可以读取 
 * web.xml文件中过滤器的参数 
 * @param filterConfig 
 * @throws ServletException
 */

doFilter

/** 
 * 这个方法完成实际的过滤操作,这个地方是过滤器的核心方法,当用户请求访问与过滤器关联的URL的时候web容器将先调用过滤器的doFilter * 方法FilterChaein参数可以调用chain.doFilter方法将请求传递给下下个过滤器或者是转发重定向到其他资源。 
 * @param servletRequest 
 * @param servletResponse 
 * @param filterChain 
 * @throws IOException 
 * @throws ServletException 
 */

destroy

/** *在销毁过滤器实例的时候调用这个方法,一般也用不到。 */

Q&A


Q: 过滤器是否能改变用户请求的web资源呢?也就是能否改变用户请求的路径

A: 可以,过滤器可以根据用户的状态改变用户的访问资源。

Q: 过滤器能否直接返回用户数据,能不能直接处理用户请求。

A: 不可以,过滤器不是一个标准的Servlet要通过转发才能处理用户逻辑






最后附上练习的demo:

https://code.youkuaiyun.com/cqlf__/filter-test/tree/master










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值