共计 1416 个字符,预计需要花费 4 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下如何实现 web 过滤器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
过滤器
概述
从技术上讲,过滤器是一个中间组件,用于拦截源数据和目的数据之间的消息,并且过滤二者之间传递的数据。其作用类似于警卫,阻止不想的信息从一个点传递到另一个点
对于 Web 应用程序,过滤器是驻留在 Web 服务器上的 Web 组件,它可以过滤从客户端传递到服务器的请求和响应,当 Web 容器接收到一个对资源的请求,它将判断是否有过滤器与这个资源相关联。如果有,就交给过滤器,过滤器可以更改请求的内容,或者重设置请求头,然后再将请求传递给目标资源。同样它也可以对服务器发出的响应进行修改。
从上面的过程可以看出客户端和目标资源来说都是透明的,他们不需要知道过滤器的存在
在这个过程当中还可以设置多个过滤器,形成一条链,来进行相应的处理
应用:
1. 认证过滤:对用户请求进行统一的认证
2. 登录和审核过滤:对用户的访问请求进行记录和审核。
3. 图像转换过滤:转换图像格式
4. 数据压缩过滤:对用户发生的数据进行压缩,从而减少传输量
5. 加密过滤:对请求和响应进行加密解密处理
6. 令牌过滤
7. 资源访问触发事件过滤
8.XSLT 过滤
9.MIME-type 过滤
代码:
过滤器必须实现 Filter 这个接口
有三个方法需要实现
1.init()- 初始化
2.doFilter()- 过滤
3.destroy()- 销毁
注意:javax.servlet 包中包括
ServletRequest、ServletResponse、ServletExcption、FilterConfig、Filter、FilterChain
javax.io 包中包括:
PrinterWriter、IOExcption
Filter 的布署
它的布署跟 servlet 的 布署差不多 eg:
filter filter-name Hello /filter-name filter-class com.lovo.HelleWorld /filter-class /filter filter-mapping filter-name Hello /filter-name url-pattern /filter/* /url-pattern /filter-mapping
过滤器 API:
容器实现的三个接口:
1.javax.servlet.Filter
2.javax.serlvet.Filter.Chain
3.javax.servlet.FilterConfig- 跟 servlet 中的 servletConfig 一样,主要是提供过滤器初始化参数
容器实现的四个包装类:
1.javax.servlet.ServletRequestWrapper
2.javax.servlet.Servletresponsewrapper
3.javax.servlet.HttpServletRequestWrapper
4.javax.servlet.HttpServletResponseWrapper
web 过滤器可以防止 WVS 扫描和注入、跨站等 ***。
以上是“如何实现 web 过滤器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!