本篇内容介绍了“java中的监听器和过滤器是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
目录1、介绍:
2、作用域对象:
Servt规范扩展-----------过滤器接口
1、介绍:
2、具体作用:
3、Filter接口实现类的开发步骤:三步
第一步:创建一个java类实现Filter接口
第二步:重写doFilter接口中的doFilter()方法
第三步:在web.xml文件中将过滤器接口实现类注册到Http服务器
OneServlet
TwoServlet
4、Filter拦截地址的格式
1)一组来自于Servlet规范下的接口,共有8个接口。在Tomcat中存在于Servlet-api.jar包
2)监听器接口需要由开发人员亲自实现,Http服务器提供的jar中并没有对应的实现类
3)监听器接口用于监控【作用域对象生命周期的变化时刻】以及【作用域对象共享数据的变化时刻】
2、作用域对象:1)在Servlet规范中,认为在服务端内存中可以在某些条件下为两个Servlet之间提供数据共享方案的对象,被称为【作用域对象】
2)在Servlet规范下的作用域对象:
ServletContext:全局作用域对象
HttpSession:会话作用域对象
HttpServletRequest:请求作用域对象
3、监听器接口实现类开发规范:三步
1)根据监听的实际情况,选择对应的监听器接口进行实现
2)重写监听器接口中声明的【监听事件处理方法】
3)在web.xml文件中将监听器接口实现类注册到Http服务器中
4、ServletContextListener
1)作用:通过这个接口合法的检测全局作用域对象的两个时刻
被初始化时刻 被销毁时刻
2)监听事件处理方法
public void contextInitialized():在全局作用域对象被Http服务器初始化是调用
public void contextDestroyed():在全局作用域对象被Http服务器销毁时调用
5、ServletContextAttributeListener接口:
1)作用:通过这个接口合法的检测全局作用域对象共享数据变化的时刻
2)监听事件处理方法:
public void contextAdded():在全局作用域对象添加共享数据时调用
public void contextReplaced():在全局作用域对象更新共享数据时调用
public void contextRemoved():在全局作用域对象删除共享数据时调用
6、全局作用域对象共享数据变化时刻
ServletContext application=request.getServletContext();
application.setAttribute("key1",100); //新增共享数据
application.setAttribute("key1",200); //更新共享数据
application.removeAttribute("key1"); //删除共享数据
代码实现
以下就以ServletContextListener接口和ServletContextAttributeListener接口
第一步:选择ServletContextListener接口进行实现
第二步:重写监听器接口声明的【监听事件处理方法】
public class OneListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("Initialized............"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("Destroyed............."); } }第三步:在web.xml中将监听器接口实现类注册到Http服务器中
<listener> <listener-class>school.xauat.listener.OneListener</listener-class> </listener>由于ServletContext【全局作用对象的生命周期】贯穿网站的整个运行期间
Servlet之间数据共享中有具体的ServletContext生命周期
因此在Tomcat服务器启动过程时,执行contextInitialize()方法
Initialized............
在Tomcat服务器准备关闭时,执行contextDestroyed()方法
Destroyed.............
第一步:选择ServletContextAttributeListener接口进行实现
第二步:重写监听器接口声明的【监听事件处理方法】
public class OneListener implements ServletContextAttributeListener { @Override public void attributeAdded(ServletContextAttributeEvent scae) { System.out.println("ServletContextAttribute is added......"); } @Override public void attributeRemoved(ServletContextAttributeEvent scae){ System.out.println("ServletContextAttribute is removed......"); } @Override public void attributeReplaced(ServletContextAttributeEvent scae){ System.out.println("ServletContextAttribute is replaced......"); } }郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。