本篇内容介绍了“java中的监听器和过滤器是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
<编辑类="目录">目录编辑>- <李>
1,介绍:
李> <李>2,作用域对象:
李> <李>Servt规范扩展- - - - - - - - - - - -过滤器接口
李>- <李>
1,介绍:
李> <李>2,具体作用:
李> <李>3,过滤接口实现类的开发步骤:三步
李>- <李>
第一步:创建一个java类实现过滤器接口
李> <李>第二步:重doFilter接写口中doFilter()的方法
李> <李>第三步:在网络。xml文件中将过滤器接口实现类注册到Http服务器
李>OneServlet
李>TwoServlet
李>- <李>
4,过滤器拦截地址的格式
李>
1,介绍:
1)一组来自于Servlet规范下的接口,共有<强> 8个接口>强。在Tomcat中存在于<强> Servlet-api.jar 强>包
2)监听器接口需要由<强>开发人员亲自实现>强,Http服务器提供的jar中并没有对应的实现类
3)监听器接口用于监控<强>【作用域对象生命周期的变化时刻】强>以及<强>【作用域对象共享数据的变化时刻】强>
2,作用域对象:
1)在Servlet规范中,认为在服务端内存中可以在某些条件下为两个Servlet之间提供数据共享方案的对象,被称为【作用域对象】
2)在Servlet规范下的作用域对象:
<代码> ServletContext> 代码:全局作用域对象
<代码> HttpSession> 代码:会话作用域对象
<代码> HttpServletRequest> 代码:请求作用域对象
3,监听器接口实现类开发规范:三步
<强> 1)根据监听的实际情况,选择对应的监听器接口进行实现强>
<强> 2)重写监听器接口中声明的【监听事件处理方法】强>
<强> 3)在网络。xml文件中将监听器接口实现类注册到Http服务器中强>
, <强> ServletContextListener 强>
1)作用:通过这个接口合法的检测全局作用域对象的两个时刻
被初始化时刻被销毁时刻
2)监听事件处理方法
<代码>公共空间contextInitialized(): 代码>在全局作用域对象被Http服务器初始化是调用
<代码>公共空间contextDestroyed(): 代码>在全局作用域对象被Http服务器销毁时调用
5 S <强> ervletContextAttributeListener 强>接口:
1)作用:通过这个接口合法的检测全局作用域对象共享数据变化的时刻
2)监听事件处理方法:
<代码>公共空间contextAdded(): 代码>在全局作用域对象添加共享数据时调用
<代码>公共空间contextReplaced(): 代码>在全局作用域对象更新共享数据时调用
<代码>公共空间contextRemoved(): 代码>在全局作用域对象删除共享数据时调用
6,全局作用域对象共享数据变化时刻
<代码> ServletContext应用=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(“初始化............“); ,,,} ,,@Override ,,,public void contextDestroyed (ServletContextEvent sce), { ,,,,,,,System.out.println(“摧毁.............“); ,,,} }
第三步:在网络。xml中将监听器接口实现类注册到Http服务器中
& lt; listener> ,,,& lt; listener-class> school.xauat.listener.OneListener & lt;/listener>
由于ServletContext【全局作用对象的生命周期】贯穿网站的整个运行期间
Servlet之间数据共享中有具体的ServletContext生命周期