#笔记#圣思园 JavaWeb 第39讲——Filter过滤器

1.过滤器概念

过滤器能够对Servlet容器的请求和响应对象进行检查和修改

Servlet过滤器本身不生成请求和响应对象,只提供  过滤  作用

在Servlet被调用之前,检查Request对象,修改Request Header和Request内容

在Servlet被调用之后,检查Response对象,修改Response Header和Response内容。

Servlet过滤器负责过滤的Web组件,可以是Servlet、JSP或HTML

Filter接口

所有Servlet过滤器类,必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法

init(FilterConfig):这个方法是过滤器的初始化方法。Servlet容器创建Servlet过滤器实例后,调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数

##doFilter(ServletRequest,ServletResponse,FilterChain):完成实际的过滤操作。当客户请求访问与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器。(FilterChain[过滤器链]是接口,是一个对象)

destroy():销毁过滤器实例前,调用这个方法,释放Servlet过滤器占用的资源

2.过滤器工作过程

3.创建Servlet过滤器的方法

4.发布Servlet过滤器的方法

5.程序示例

(1)创建NoteFilter过滤器,可以拒绝列在黑名单上的客户访问留言簿.新建文件夹filter。与session文件夹中的代码相比较

login.jsp——代码不变

MyLoginServlt.java——代码不变,因为这个Servlet就是用来判断用户角色

index.jsp——把判断用户是否登录的session部分代码去掉,查询和修改链接改为MyQuery和MyUpdate

LoginFilter.java


配置web.xml文件

/*  表示过滤当前应用中的所有请求

直接执行程序,访问filter/login.jsp时,页面是空白,控制台输出“doFilter invoked”,原因在于,FilterChain对象调用后续资源,所以继续编写LoginFIlter.java


MyQueryServlet.java


MyUpdateServlet.java

6.程序示例,使用filter进行对于敏感词的处理

comment.jsp

CommentFilter.java

CommentServlet.java

commentResult.jsp

web.xml——过滤后缀名是CommentServlet的组件


7.过滤器链,串联过滤器工作过程


info.jsp

InfoServlet.java

infoResult.jsp

MyFilter1.java

MyFilter2.java

web.xml

执行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值