- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Web监听技术.doc
Web监听技术
1、概述
在Web应用中,可以部署一些特殊的Servlet类,从而实现监听Web应用中的上下文信息、Servlet会话信息、Servlet请求信息等。
通过对这些信息的监听,从而可以在服务器的后台自动启动某些程序,完成一些特殊的应用。
2、Web应用的生命周期事件
Servlet API 2.3第二个意义重大的改变是增加了Web应用程序生命周期事件,即当Servlet Contexts和Sessions被初始化或释放时,以及当向Servlet Contexts或Session上添加或删除属性的时候,都将通知listener对象。Servlet生命周期事件与Swing的事件机制类似。
如果你想让你的类监听应用的启动和停止事件,你就得实现ServletContextListener接口;如果你想让你的类去监听Session的创建和失效事件,那你就得实现HttpSessionListener接口。
(1)对ServletContext生命周期进行观察的监听器必须实现 ServletContextListener接口
这个接口有两个方法:
void contextInitialized(ServletContextEvent e)
该方法在Web应用程序第一次准备处理Requests请求的时候(例如:Web Server启动并且ServletContext被加载和重新加载时)被执行。本方法返回之前不开始处理Requests请求。
void contextDestroyed(ServletContextEvent e)
该方法在Web应用程序要被关闭的时候(例如:当Web Server关闭或当一个ServletContext被移去或重新加载的时候) 被执行。本方法调用时Request请求处理已经停止。
传入这些方法的ServletContextEvent类只有一个返回被初始化或被移去的获得ServletContext的getServletContext()方法。
(2)Session Listener Model与Context Listener Model类似。在Session事件模型中, 有一个拥有两个方法的HttpSessionListener接口:
void sessionCreated(HttpSessionEvent e):当Session创建时被调用
void sessionDestroyed(HttpSessionEvent e):当Session被释放时或无效时被调用
这些方法接受一个拥有返回被创建或被释放的Session的getSession()方法的HttpSessionEvent类实例。可以使用这些方法实现一个对Web 应用程序中所有的活动用户进行跟踪的管理者接口。
3、生命周期事件的应用编程
(1)编程实现的步骤
编程对应的生命周期事件类程序
并根据应用的需要实现某一生命周期事件的监听器接口,并在该类中重写相应的生命周期事件处理的方法
在web.xml中部署该事件类程序(注意:由于监听是针对整个Web应用程序而言的,因此不需要象FilterServlet那样设置filter-mapping)
启动本Web应用,当应用的状态满足某一事件的触发条件时,容器将自动地触发对生命周期事件处理的方法调用
(2)应用的示例
生命周期事件的一个实际应用是由ServletContext中监听器管理共享数据库连接。每当web服务器启动后将自动创建出数据库的连接(也可以实现其它只需要初始化一次的任务)。
实现该应用目的的监听器的程序代码例子如下:
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyConnectionManager implements ServletContextListener
{
Connection con=null;
String url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DataBase;
String DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver;
public void contextInitialized(ServletContextEvent e)
{
try
{
Class.forName(DBDriver);
con= DriverManager.getConnection(url,sa,); //创建出数据库的连接代码
}
文档评论(0)