Java中ServletContextAttributeListener监听器详解
ServletContextAttributeListener是对Servlet上下文(ServletContext)增删改的属性进行监听。
方法
//增加属性 public void attributeAdded(ServletContextAttributeEvent scab); //属性删除 public void attributeRemoved(ServletContextAttributeEvent scab); //属性替换(第二次设置同一属性) public void attributeRepalced(ServletContextAttributeEvent scab); //ServletContextAttributeEvent事件:能取得设置属性的名称与内容 //得到属性名称 public String getName(); //取得属性的值 public Object getValue();
例子
//ServletContext域对象中属性的变更的事件监听器 package webtest.listener; import java.text.MessageFormat; import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; public class MyServletContextAttributeListener implements ServletContextAttributeListener { @Override public void attributeAdded(ServletContextAttributeEvent scab) { String str =MessageFormat.format( "ServletContext域对象中添加了属性:{0},属性值是:{1}" ,scab.getName() ,scab.getValue()); System.out.println(str); } @Override public void attributeRemoved(ServletContextAttributeEvent scab) { String str =MessageFormat.format( "ServletContext域对象中删除属性:{0},属性值是:{1}" ,scab.getName() ,scab.getValue()); System.out.println(str); } @Override public void attributeReplaced(ServletContextAttributeEvent scab) { String str =MessageFormat.format( "ServletContext域对象中替换了属性:{0}的值" ,scab.getName()); System.out.println(str); } }
//web.xml配置监听器 <listener> <listener-class>webtest.listener.MyServletContextAttributeListener</listener-class> </listener>
//Test.jsp测试页面 <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <body> <% //往application域对象中添加属性 application.setAttribute("name", "51gjie"); //替换application域对象中name属性的值 application.setAttribute("name", "51gjie.com"); //移除application域对象中name属性 application.removeAttribute("name"); %> </body> </html>
这样ServletContextListener监听器成功监听到了ServletContext域对象(application)中的属性值的变化情况。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。