JavaWeb系列之十五(监听器)



1.监听器:

事件源

监听器

在事件源上邦定监听器

事件:当事件源发生了变化,触发监听器

2.servlet监听器

servlet会分成三类:监听的是里面域对象的状态servletContext HttpSession,ServletRequest

第一类:监听三个域对象的创建和销毁

servletContext:整个web项目,在服务器启动时创建,服务器关闭时候销毁

第一步:实现一个接口ServletContextListener实现它的方法

contextInitialized(ServletContextEvent sce) :如果域对象创建了,会自动执行这个方法

contextDestroyed(ServletContextEvent sce) :如果域对象销毁了,会自动执行这个方法

第二步操作:在web.xml中进行配置,让服务器知道不是一个普通的java程序,而是一个监听器

<listener>

<listener-class>cn.itcast.listener.TestServletContext</listener-class>

</listener>

servletContext域的应用:因为在服务器启动时候创建,经常用在创建数据库连接池,或者在服务器启动时候加载配置文件

HttpSession一次会话,request.getSeesion创建。三种销毁(1)非正常关闭服务器 (2)默认的过期时间 (3)调用方法

第一步实现:HttpSessionListener接口

访问jsp的时候会创建一个session因为会编译成servlet,jsp里面有内置对象,getSession

访问一个servlet不会创建session只有它访问getSession的时候会创建

访问html的时候不会创建session对象。

第二步配置web.xml

ServletRequest一次请求,请求时创建,请求结束

监听ServletRequestListener有两个方法表示这个域对象创建的时候来执行

访问jsp,servlet,html会创建一个request对象,只要浏览器是一起请求都会创建request对象

第二类:监听三个域对象里面属性的变化(增加,替换,移除)

监听servletcontext域里面的属性的变化

第一步操作:实现ServletContextAttributeListener接口

在接口里面有三个方法

- attributeAdded(ServletContextAttributeEvent event) :向域对象里面增加属性,执行这个方法

- attributeRemoved(ServletContextAttributeEvent event) :从域对象里面移除属性,执行这个方法

- attributeReplaced(ServletContextAttributeEvent event) :替换了域对象里面的属性的值,会执行这个方法

第二步操作

在web.xml进行配置,让服务器知道是一个监听器

监听HttpSession域里面的属性的变化

第一步操作:实现HttpSessionAttributeListener 接口

在接口里面有三个方法

- attributeAdded(HttpSessionBindingEvent event) :向域对象里面增加属性,执行这个方法

- attributeRemoved(HttpSessionBindingEvent event) :从域对象里面移除属性,执行这个方法

- attributeReplaced(HttpSessionBindingEvent event) :替换了域对象里面的属性的值,会执行这个方法

第二步操作

在web.xml进行配置,让服务器知道是一个监听器

监听servletRequest域里面的属性的变化

第一步操作:实现ServletRequestAttributeListener接口

接口里面有三个方法

- attributeAdded(ServletRequestAttributeEvent srae) :向域对象里面增加属性,执行这个方法

- attributeRemoved(ServletRequestAttributeEvent srae) :从域对象里面移除属性,执行这个方法

- attributeReplaced(ServletRequestAttributeEvent srae) :替换了域对象里面的属性的值,会执行这个方法

在servletContext监听器里面如何得到servletContext对象

通过ServletContextEvent里面getServletContext()方法得到

第三类:监听httpSession里面的javabean的状态

第一个接口 HttpSessionBindingListener接口

接口里面有两个方法

- valueBound(HttpSessionBindingEvent event)     绑定:把javabean对象放到session域对象里面

- valueUnbound(HttpSessionBindingEvent event)    解除绑定:把javabean对象从session域里面移除

第二个接口 HttpSessionActivationListener接口

有两个方法

- sessionDidActivate(HttpSessionEvent se)

活化

- sessionWillPassivate(HttpSessionEvent se)

活化:把磁盘上面序列化的session反序列化到项目里面

钝化:把session序列化到磁盘

正常关闭服务器,在work目录里面有序列化的文件

实现接口Serializable 的类才可以序列化,User没有这个接口才出现异常

而map里面有继承序列化

不是servlet不能用getServletContext来获取servletContext

4.分页显示数据

第一种方式:逻辑分页(假分页)

一次性把数据都取出来,每次显示一部分,缺点:数据量大,时间长,

优点:只需要和数据库交互一次、、

第二种方式:物理分页

每次根据显示的页面和数据,到数据库里面去查询

需要多次和数据交互

可以使用masql里面的关键字,limit实现分页,

开始位置如何计算:(当前页数-1)*每页的记录数

开始位置 当前显示的记录数

第一页   0        5

总的页数如何记录:总记录数/每页的记录数

如果总的记录数能够整除,页数就是除的结果

如果总的记录数不能够整除,页数就是除的结果+1

首先创建javabean在把里面的属性

时间: 2024-10-31 02:09:52

JavaWeb系列之十五(监听器)的相关文章

JavaWeb学习 (二十五)————监听器(Listener)

一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行. 1.2.监听器案例--监听window窗口的事件监听器 1 package me.gacl.listener.demo; 2 3 import java.awt.Fram

quick-cocos2d-x 学习系列之十五 状态机

quick-cocos2d-x 学习系列之十五 状态机 1.  代码 -- create Finite StateMachine self.fsm_ = {} cc.GameObject.extend(self.fsm_) :addComponent("components.behavior.StateMachine") :exportMethods() self.fsm_:setupState({ events = { {name = "start", from

C++语言笔记系列之十五——派生类、基类、子对象的构造和析构函数调用关系

例子 example 1 注:若一个基类同时派生出两个派生类,即两个派生类从同一个基类继承,那么系统将为每一个简历副本,每个派生类独立地使用自己的基类副本(比如基类中有属于自己类的静态变量等). #include <iostream.h> class Person { public: person() {cout<<"Construction of person."<<endl;} ~person() {cout<<"Destr

javaweb学习总结(四十五)——监听器(Listener)学习二

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

javaWeb系列之十六(过滤器)

 1.过滤器的概述和入门案例 发送请求到目标资源,在请求道目标资源之前进行过滤. 在javaweb中的三大主件:servlet,监听器,过滤器 2.实现过滤器的方式 servlet和监听器都是实现响应的接口 实现过滤器,也是实现一个接口,Filter 在web.xml中进行配置,让服务器知道这不是普通的类(和监听器一样) 在这个包里面import javax.servlet.Filter; filter-name:过滤器名称,不一定是类名,/*:表示过滤所有 <filter> <fi

Golang 入门系列(十五)如何理解go的并发?

前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的并发,其实之前简单介绍过协程(goroutine)和管道(channel) 等基础内容,只是比较简单,只讲了基本的语法.今天就详细说说golang的并发编程. 一.并发和并行 Go是并发语言,而不是并行语言.所以我们在讨论,我们首先必须了解什么是并发,以及它与并行性有什么不同. 什么

单片机入门指南系列(十五) 单片机程序下载失败总结

前面介绍了点亮第一个LED的全过程,很多人可能很幸运的点亮了LED,然而也很可能不少人非常不幸没有把程序下载进去.初学者常会遇到程序无法下载的情况,很多人在尝试多次未果后比较受打击,因此放弃了学习,实在太可惜了.鉴于此,这里列举了单片机程序下载失败的各种出错原因.判断方法和解决方法,是前人所遇到的种种原因的总结. STC单片机下载程序主要分为三部分:单片机最小系统.下载电路.计算机端.下载失败一般主要就从这三个方面来解决问题. 快速排错方法 如果你有或者能向别人借到一套可以正常下载程序的电脑.单

javaweb学习总结(十五)——JSP基础语法

任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素.  JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将程序数据输出到客户端     语法:<%= 变量或表达式 %>     举例:输出当前系统时间: 1 <%= new java.util.Da

火云开发课堂 - 《Shader从入门到精通》系列 第十五节:在Shader中对3D模型进行颜色设置

<Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第十一节:在Shader中中对3D模型进行颜色设置 视频地址: http://edu.csdn.net/course/detail/1441/22679?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 版权声明:本文为博主原创文章,未经博主允许不得