listener的应用

原创 2012年03月29日 20:02:11

1  ServletContext(application)对象

 

package net.company.web.listener;

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

import net.company.service.DepartmentService;
import net.company.service.DepartmentServiceBean;
import net.company.service.EmployeeService;
import net.company.service.EmployeeServiceBean;
import net.company.util.TxManagerProxy;

/**
 * ServletContext对象
 *    |-->服务器启动时创建,每个Web应用有一个
 *    |-->可以被所有Servlet所共享
 */
     
public class MyContextListener implements ServletContextListener {

 public void contextDestroyed(ServletContextEvent arg0) {
   ServletContext context=arg0.getServletContext();
   context.removeAttribute("departmentService");
   context.removeAttribute("employeeService");
   System.out.println("==ServletContextListener destroy==");
 }

 public void contextInitialized(ServletContextEvent arg0) {
   
          ServletContext context=arg0.getServletContext();
          //从代理对象中获得departmentService的对象,放到servletContext(application)对象中,类似spring中 的静态注入
          context.setAttribute("departmentService", (DepartmentService)new TxManagerProxy().getInstance(new DepartmentServiceBean()));
          context.setAttribute("employeeService", (EmployeeService)new TxManagerProxy().getInstance(new EmployeeServiceBean()));
          System.out.println("==ServletContextListener init==");
 }

}

 在action中通过

 private EmployeeService es=(EmployeeService)ServletActionContext.getServletContext().getAttribute("departmentService");获取对象

 

2 、sessionContext(session对象)

 

package net.company.web.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
 *监听Session(会话)对象的创建
 *  |--->http(1.1)-->无状态协议(在这个协议中不会保存会话(客户端与服务端进行通讯的过程)状态)
 *    |-->TCP/IP(四层)
 *      |-->应用层
 *      |-->网络层(网际层)
 *      |-->数据链路层
 *      |-->物理层
 *    |-->ISO(七层协议)
 **/
public class MySessionListener implements HttpSessionListener {

 public void sessionCreated(HttpSessionEvent arg0) {
  //Session创建

 }

 public void sessionDestroyed(HttpSessionEvent arg0) {
  
  //Session销毁

 }

}

 

ServletRequestListener | 监听器 | 应用例子

ServletRequestListener 监听器 package cn.qiu;import javax.servlet.ServletRequest; import javax.servlet....
  • qq_26334813
  • qq_26334813
  • 2017年05月29日 14:44
  • 157

JavaWeb三大技术之Listener

监听器Listener对于我的理解,我感觉监听器Listener的作用没有过滤器Filter的作用大,在接下来我会总结下javaweb三大技术Filter的学习心得,这里我通过一个案例来说明Liste...
  • chendengcd
  • chendengcd
  • 2017年07月09日 01:01
  • 114

监听器Listener应用举例

Listener的应用实例   在本实例中共创建了两个Listener实例,分别用于监听ServletContext,HttpSession对象生命周期及ServletContext,HttpSe...
  • WhatIsNotNull
  • WhatIsNotNull
  • 2012年09月08日 20:54
  • 334

Listener Servlet的应用

 Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发session...
  • cuker919
  • cuker919
  • 2009年05月06日 15:35
  • 650

Listener Servlet的应用

 Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发session...
  • liuzhenwen
  • liuzhenwen
  • 2008年10月15日 15:41
  • 387

java常用的Listener分类

Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。(通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发session...
  • yxl2005play
  • yxl2005play
  • 2010年01月10日 16:53
  • 3030

SpringBoot中Servlet&Listener&Filter的应用

在spring boot中添加自己的Servlet有两种方法,代码注册Servlet和注解自动注册: 一、代码注册通过ServletRegistrationBean、 FilterRegistrati...
  • songhaifengshuaige
  • songhaifengshuaige
  • 2017年01月06日 13:28
  • 1074

servlet 相关的Listener应用

Context范围:    ServletContextListener:对一个应用进行全局监听.随应用启动而启动,随应用消失而消失主要有两个方法:contextDestroyed(ServletCo...
  • ttaallkk1
  • ttaallkk1
  • 2006年06月18日 12:04
  • 674

Listener实现原理

今天无聊看了下struts源码 发现原来Listener的实现其实挺简单的。 先在这里记一下 实现所需要的对象: 1.需要监听的对象:Monitable 2.监听器接口:Listener 3...
  • BXFTYT
  • BXFTYT
  • 2012年03月21日 13:44
  • 1852

谈谈Listener Servlet的应用

谈谈Listener Servlet的应用 作者:刘晓华 发文时间:2004.11.23    Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激...
  • niyboy
  • niyboy
  • 2005年02月24日 10:15
  • 1598
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:listener的应用
举报原因:
原因补充:

(最多只允许输入30个字)