作用域和Servlet监听器

来源:互联网 发布:网络性能指标 编辑:程序博客网 时间:2024/05/19 03:23

对象作用域

在Servlet里可以用一个名字绑定一个对象

谁能看到并使用这个属性,它能存活多久


属性操作方法

作用域对象

作用域范围说明

voidsetAttribute(String,Object)

Object getAttribute(Sting)

voidremoveAttribute(String)

EnumerationgetAttributeNames()

ServletContext(上下文)

整个Web应用程序

HttpSession(会话)

一个会话交互过程

ServletRequest(请求)

一次请求过程







ServletContext应用上下文

设置在ServletContext对象中的属性可以被Web应用中的任何一部分来访问


会话作用域 

Session用于维护与一个客户的会话状态。对于同一个客户的多个请求,Session会跨这些请求持久存储


请求作用域 (存储时间比上下文作用域和会话作用域短。在请求结束后,对象就会被垃圾回收 )

系统的资源消耗

属性可以保存在请求作用域范围中


监听器概述

监听session,request,application这三个对象里存取数据的变化

监听器对象可以在事情发生前、发生后可以做一些必要的处理

Servlet监听器主要目的是给Web应用增加事件处理机制,以便更好地监视和控制Web应用的状态变化

听Web应用程序范围内的事件

Web应用启动和销毁事件

Web应用程序的属性发生改变的事件(包括增加、删除、修改)

义了ServletContextListener和ServletContextAttributeListener两个接口

ServletContext事件

对象的创建和删除以及属性的添加、删除和修改等操作

ServletContextAttributeListener监听对ServletContext属性的操作,如增加、删除、修改操作

ServletContextListener监听ServletContext

当创建ServletContext时,激发contextInitialized (ServletContextEvent sce)方法

当销毁ServletContext时,激发contextDestroyed(ServletContext- Event sce)方法

HttpSession事件

可以监听Http会话活动情况、Http会话中属性设置情况,也可以监听Http会话的active、paasivate情况等

HttpSessionListener监听HttpSession的操作。

HttpSessionActivationListener用于监听Http会话active、passivate情况

HttpSessionAttributeListener监听HttpSession中属性的操作

当创建一个Session时,激发session Created (SessionEvent session)方法

当销毁一个Session时,激发sessionDestroyed (HttpSessionEventsession)方法

当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEventsession) 方法

当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEventsession)方法

当Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法

ServletRequest事件

请求作用域范围内的生命周期事件用于管理整个request生命周期的状态和资源

ServletRequestListener接口

public void requestDestroyed(ServletRequestEvent sre):当请求被销毁时被处理

public void requestInitialized(ServletRequestEvent sre):当请求被创建时被处理

ServletRequestAttrubuteListener接口

public void attributeAdded(ServletRequestAttributeEvent arg0) :当在请求作用域中添加一个属性的时候调用该方法

public void attributeRemoved(ServletRequestAttributeEvent arg0) :当在请求作用域中删除一个属性时调用

public void attributeReplaced(ServletRequestAttributeEvent arg0) :当在请求作用域中替换一个属性值的时候调用









1 0