servlet上下文监听器实例



servlet上下文监听器实例,servlet如何实现上下事务的拦截监听?servlet监听器的实现方法介绍,以下是简单的工作原理的介绍,希望可以给您的学习带来帮助:

Context_Listene.java上下事务监听器:

package com.cn.listener;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Context_Listene implements ServletContextListener,ServletContextAttributeListener{

private ServletContext servletContext=null;//定义一个ServletContext变量,初始值为null
// 该方法实现了ServletContextListener接口定义的方法,对ServletContext对象进行初始化
public void contextInitialized(ServletContextEvent event) {

//初始化一个ServletContext对象,赋值给成员变量
this.servletContext = event.getServletContext();
print(“初始化成功!”);//打印该方法操作信息
}
// 该方法实现了ServletContextListener接口定义的方法,用来释放ServletContext对象
public void contextDestroyed(ServletContextEvent event) {
this.servletContext=null;//释放ServletContext
print(“释放了ServletContext!”);//打印该方法操作信息
}
// 上下文添加属性时调用此方法,本例中只是把添加的信息打印出来,不做具体处理
public void attributeAdded(ServletContextAttributeEvent attributeEvent) {
print(“添加的ServletContext对象属性(“+attributeEvent.getName()+”,”+attributeEvent.getValue()
+”)”);


}
// 上下文删除某个属性时,调用此方法,本例中只是把删除的信息打印出来,不做具体出来
public void attributeRemoved(ServletContextAttributeEvent arg0) {
// 打印该方法操作信息
print(“删除ServletContext对象属性名”+arg0.getName());
}
// 上下文某个属性更新时,调用此方法,本例中只是把更新的信息打印出来,不做具体出来
public void attributeReplaced(ServletContextAttributeEvent attributeEvent) {
// 打印该方法操作信息
print(“更新的ServletContext对象属性(“+attributeEvent.getName()+”,”+attributeEvent.getValue()
+”)”);
}
private void print(String message){
PrintWriter out = null;
try {
out = new PrintWriter(new FileOutputStream(“D:\\writer.txt”,true));
out.println(new java.util.Date().toLocaleString()
+” ContextListener “+message);
out.close();
} catch (FileNotFoundException e) {
System.out.println(“操作失败!”);
e.printStackTrace();
}
}
}

受监听的jsp页面jsp_writer.jsp

<%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<title>My JSP ‘jsp_writer.jsp’ starting page</title>
</head>
<body>
<%
out.print(“ContextListener”);
application.setAttribute(“name”,”Jack”);
application.setAttribute(“name”,”Micok”);
application.setAttribute(“name”,”");
application.removeAttribute(“name”);

%>
</body>
</html>

web.xml配置文件:

<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”2.5″
xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
<listener>
<listener-class>com.cn.listener.Context_Listene</listener-class>
</listener>

</web-app>