1>Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前实现一些特殊的功能。 2>在ServletAPI中定义了三个接口类来供开发人员编写Filter程序:Filter,FilterChain,FilterConfig 3>Filter程序是一个实现了Filter接口的Java类,与Servlet程序相似,它由Servlet容器进行调用和执行 4>Filter程序需要在web.xml文件中进行注册和设置它所能拦截的资源: Filter程序可以拦截JSP,Servlet静态图片文件和静态html文件
详细的操作方法或具体步骤
1.新建两个JSP文件

2.首页做个跳转到result.jsp

3.结果页面仅输出一句话,表示到达结果页

4.运行首页

5.点击连接,到达结果页,这是一个正常的跳转

6.现在给它加上一个拦截器,新建HelloWorldFilter.java文件

7.让它实现 Filter 接口,并为每个方法输出方法名,我们看下这个拦截器是如何运行的

8.在web.xml中注册并映射拦截器

9.再次启动工程,发现,inIt方法在Servlet容器加载当前WEB应用时即被创建,且只被调用一次。该方法用于对当前的Filter进行初始化操作

10.当点击连接后发现调用doFilter方法,跳转到结果页面,但是页面上并没有输出我们想要的结果

11.再次刷新结果页,发现,刷新一次,调用一次doFilter方法,
说明:真正Filter的逻辑代码需要编写在该方法中,每次调用都会调用该方法。

12.在doFilter中增加如下代码即:
doFilter(ServletRequest request,ServletResponse response)把请求传给Filter链的下一个Filter,
它是 FilterChain:Filter链,多个Filter可以构成Filter链。
若当前Filter是链的最后一个,则把请求传给目标Servlet(或JSP)
多个Filter 拦截的顺序和

13.运行结果,现在返回到正常的结果页面

14.通俗来讲,拦截器就是一个门卫,让你进去你就进去,让你去哪里你就去哪里!
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
