javaweb之监听器详解

简介:

在servlet中定义了多种类型的监听器,他们用于监听事件源分别是servletContext,httpsession,servletrequest 这三个域对象。

servlet中监听器主要有三类:

1,监听三个域对象的创建和销毁的监听器(3个 ),

servletContextListenlisten监听器:用来监听servletcontxt域对象的创建和销毁的监听器:

创建:在服务器启动的时候,为每个web应用创建单独的ServletContext对象。

 contextInitialized用来监听创建

 销毁:在服务器关闭的时候,或者项目从web服务器中移除的时候。

contextDsttroyed用来监听销毁

创建监听器就是新建一个类然后实现servletContextListen

然后在配置xml(用eclipse创建lissten文件系统会自动生成)

<listener>

<listen_class>监听器名称的全路径</>

</listener>

 HttpSessionListener监听器

 

用来监听HttpSession对象的创建和销毁

 

服务器端第一次调用getSession()方法时候。

 

l 销毁:

 

非正常关闭服务器(正常关闭服务器session会被序列化)。

 

n Session过期(默认过期时间30分钟)。

 

手动调用session.invalidate()方法。

 

 

套路同上

 ServletRequestListener监听器

 

用户监听ServletRequest对象的创建和销毁

 

l 创建

 

从客户端向服务器发送一次请求,服务器就会创建request对象。

 

l 销毁

 

服务器对这次请求作出了响应之后,request对象就销毁了。

 

 

 

2,监听三个域对象的属性变更(属性添加,移除,替换)的监听器(3个)

ServletContextAttributeListener

监听ServletContext对象中的属性变更(属性添加,移除,替换)的监听器

 

 HttpSessionAttributeListener

监听HttpSession对象中的属性变更(属性添加,移除,替换)的监听器

 

 

 ServletRequestAttributeListener

监听ServletRequest对象中的属性变更(属性添加,移除,替换)的监听器

 

 

3,监听httpsession中Javabean的状态改变(钝化,活化,绑定,解绑)的监听(2个)

保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到一个存储设备中(钝化);随session对象从一个存储设备中恢复(活化)。

Servlet对方中定义了两个特殊的监听的接口来帮助Java类了解自己在Session域中的状态

HttpSessionBindingListener接口

HttpSessionActivationListener接口,

实现这两个接口的类不需要在web.xml中进行配置。

 监听器

监听Java类在HttpSession中的绑定和解除绑定的状态的监听器:

 监听器

监听HttpSessionJava类的钝化和活化监听器

 

配置完成session的序列化和反序列化

Context标签可以配置在:

tomcat/conf/context.xml:所有tomcat下虚拟主机和虚拟目录下的工程都会序列化session

tomcat/conf/Catalina/localhost/context.xml:localhost虚拟主机下的所有项目会序列化session

工程/META-INF/context.xml:当前工程才会序列化session

<Context>

<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">

<Store className="org.apache.catalina.session.FileStore" directory="itheima"/>

</Manager>

</Context>

 

 

保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到一个存储设备中(钝化);随session对象从一个存储设备中恢复(活化)。




本文转自 sshpp 51CTO博客,原文链接:http://blog.51cto.com/12902932/1925690,如需转载请自行联系原作者
相关文章
|
3天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
23 7
|
1月前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
91 33
|
25天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
28 4
|
1月前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
69 13
|
1月前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
99 15
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
64 9
|
1月前
|
Java 开发者 Spring
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
59 7
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
95 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
3月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
85 7
|
3月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
107 4

热门文章

最新文章