今日学习Servlet的过滤器部分,百闻不如一见。以后我在课后做练习时,发现多个Servlet之间转发容易产生问题。
-
根本不利于使用,Servlet应该本是为简化工作而创造的啊!我当时觉得是我的设计框架产生了问题。第二天我便问方老师,确实是使用上有些问题。比如,显示访问计数,我把它单独写成了一个Servlet,什么地方需要它时,便由那个Servlet.include引用计数的Servlet。但这样总会产生一些问题和使用上的不便。比如include的Servlet必须使用相同的流,如果使用forward后任何输出都无效了。
方老师当时建议,把有些功能写到一起。但最后提到了过滤器,那时我便对过滤器产生了兴趣,今日也终于一睹芳容!让人十分喜欢!
ServletFilter,Servlet过滤器:
Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术可以对web服务器管理的所有web资源:Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
ServletAPI提供了一个Filter接口,实现这个接口的Servlet就是一个过虑器。过虑器在WEB应用访问流程中如下:
由图可见,只要我们编写了过滤器,可以对一切访问WEB应用的连接进行过滤。比如,用户访问权限、统一WEB编码…
Filter是如何实现拦截的?
实现了Filter接口的Servlet是过滤器,因为Filter接口有一个doFilter(ServletRequest request, ServletResponse response, FilterChain chain)方法,只要用户访问我们在web.xml中配置的映射目录,服务器便会调用过滤器的doFilter方法。我们在这里实现过虑功能代码,当我们调用chain.doFilter(request, response);方法时,将请求反给服务器服务器再去调用相当的Servlet。如果我们不调用此方法,说明拒绝了用户的请求。
(转)传智播客java web 过滤器
最新推荐文章于 2022-05-19 16:11:12 发布