Java监听器介绍和入门

Web服务器可以通过监听器对ServletContext、HttpServlet、ServletRequest这三个域对象进行监听。下面是监听器实现学习的路线

配置监听器

以ServletContextListener为例来实现监听器的基本功能

先创建一个Java类,然后使用ServletContextListener接口

public void contextInitialized(ServletContextEvent sec)该方法是监听器的启动方法

public void contextDestroyed(ServletContextEvent sec)当项目停止或者被移除,该方法就销毁监听器,也就是俗称的销毁方法

写Java类监听器后,就要对监听器进行配置,通过Web项目中的xml文件来配置

1.默认项目的初始页面为index.jsp(不用创建)

2.使用listener标签,填写格式为"包名"+"监听器类名"。非常简单的配置方式

接下来就可以启动服务器来查看控制台输出的内容

显示"启动"表示该监听器的初始化方法正常执行,也说明监听器启动配置成功。接下来就可以停止服务器,控制台就显示出"被销毁了",说明监听器被正常销毁

 

监听器的注册和销毁顺序

Web项目中通常有多个监听器,监听器的实现和销毁都是有顺序的,这些顺序和xml中配置监听器的位置有关系

监听器的分类

请参考思维导图的解析

ServletContext:

在xml文件中设置初始化参数,设置好之后可以通过ServletContextListener中的ContextInitialized方法来读取xml文件中设置好的参数,然后存放到ServletContext对象中。这样就能使Web项目一启动就可以把必要的信息存储在ServletContext中。

当关闭的时候就可以对一些链接,比如数据库链接,文件链接进行处理

 

在xml文件中配置参数可以通过<context-param>标签来实现,<param-name>参数名、<param-value>参数值。这样设置的好处就是以后维护方便,只需要在xml文件中修改参数即可。

通过一个Servlet类来测试是否将数值存入到ServletContext域中

注意:这里销毁的是不是初始化参数,而是保存到ServletContext域中的信息。

HttpSession:

当用户第一次通过浏览器对服务器进行访问的时候,服务器就会创建一个会话对象(HttpSession)。这个会话存储的是用户的专有信息,例如用户名,密码、权限等等。一个会话对象就代表一个用户,也就是说当一个用户离开后对应的会话对象也被消除

HTTPSession对应的接口是HttpSessionListener

<session-config>标签是设置1分钟后会话对象自动销毁。配置好xml后还要创建一个jsp页面,内容空白即可。

当使用两款不同的浏览器访问index.jsp页面的时候,就创建了两个不同的id。1分钟后两个id自动销毁。

 

ServletRequest:

用户每一次发出一个请求,都会生成一个请求对象。通过监听器可以监听请求对象,然后对用户请求的内容进行分析

因为获得的是Http请求对象,所以要进行转型。

获得请求路径的目的是可以知道请求的资源或者操作的内容等等

index2.jsp的内容空白即可,主要是体现index1发出请求传递参数的时候,监听器能监听到并且获取参数。值得一提的是,初始化结束后就立刻执行销毁方法,根之间的监听器有点差别。

 

域对象中属性的创建、替换和消除事件监听器

这类监听器主要对对象中的指定的属性进行监听,一旦发现该属性发送变化,例如增加、删除、修改等,就会做出相对应的操作

参与评论

游客评论不支持回复他人评论内容,如需回复他人评论内容请