Filter过滤器和Listener监听器详解
程序员文章站
2023-08-21 22:19:07
filter过滤器和listener监听器详解
filter过滤器
filter的简介
对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要...
filter过滤器和listener监听器详解
filter过滤器
filter的简介
对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查。
filter的使用
编写一个类,继承并实现javax.servlet.filter。
package com.jyh.filter; import java.io.ioexception; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; public class filterdemo1 implements filter { private filterconfig filterconfig; public filterdemo1(){ system.out.println("实例化了"); } //初始化 @override public void init(filterconfig filterconfig) throws servletexception { //通过这个获取过滤器在web.xml里面的配置信息 this.filterconfig = filterconfig; system.out.println("过滤器初始化了"); } //执行 @override public void dofilter(servletrequest req, servletresponse res, filterchain chain) throws ioexception, servletexception { //获取在web.xml中本过滤器配置的名为encoding的参数 string encoding = filterconfig.getinitparameter("encoding"); if(encoding == null){ encoding = "utf-8"; } //设置编码格式 req.setcharacterencoding(encoding); res.setcontenttype("text/html;charset=" + encoding); system.out.println("过滤前"); //放行 chain.dofilter(req, res); system.out.println("过滤后"); } //销毁 @override public void destroy() { system.out.println("过滤器销毁了"); } }
在web.xml中配置filter
<filter> <filter-name>filterdemo1</filter-name> <filter-class>com.jyh.filter.filterdemo1</filter-class> <!-- 配置参数 --> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>filterdemo1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
过滤器是用来对访问进去过滤的,所以需要在请求前做什么和请求之后做什么都可以用过滤器来做,例如编码的设置,自动登录等。串联过滤器什么的听着就知道是什么情况了。
listener监听器
编写一个类继承实现以下监听器接口。
监听servletcontext、httpsession、servletrequest对象的创建和销毁的监听器
servletcontextlistener: httpsessionlistener: serlvetrequestlistener:
监听servletcontext、httpsession、servletrequest属性(attributes)变化的监听器
servletcontextattributelistener httpsessionattributelistener serlvetrequestattributelistener
1.感知型监听器:不需要注册。
httpsessionbindinglistener:实现该接口的类的实例,能够感知自己何时被放到了httpsession域范围中,和何时从httpsession域范围中删除。
httpsessionactivationlistener:实现该接口的类的实例,能够感知自己何时随着httpsession钝化和激活。
在web.xml配置一下
<listener> <!-- 指向自己缩写的监听器类 --> <listener-class>com.jyh.listener.mycontextlistener</listener-class> </listener>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: JavaScript之深入函数(一)
下一篇: 浅谈PDF.js使用心得
推荐阅读
-
布隆过滤器(bloom filter)及php和redis实现布隆过滤器的方法
-
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
-
对python过滤器和lambda函数的用法详解
-
Linux下重启oracle服务及监听器和实例详解
-
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
-
Java:Listener和Filter
-
通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
-
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
-
vue的过滤器filter实例详解
-
详解AngularJS中的filter过滤器用法