栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet中的监听器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet中的监听器

文章目录

什么是监听器如何写监听器配置监听器统计在线人数的案例

什么是监听器

Servlet 规范当中定义的一种特殊的类,作用是监听容器当中产生的一些事件并进行相应的处理。

容器产生的事件指的是两大类事件:
第一大类
生命周期相关的事件,指的是当容器创建或者销毁 request,session,ServletContext 对象时产生的事件。
第二大类
绑订事件,指的是当调用 request,session,ServletContext 对象的setAttribute,removeAttribute 时产生的事件。

如何写监听器

step1
写一个 Java 类,实现特定的监听器接口(依据要监听的事件类型,去实现相应的监听器接口)。

step2
在接口声明的方法中,实现监听的逻辑。

step3
配置(web.xml)。

配置监听器

有先后顺序的要求,在 之后, 之前; 之后, 之前。

统计在线人数的案例

监听器示例代码:

package priv.lwx.servlet.web;

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


@WebListener
public class CountListener implements HttpSessionListener {
  private int count = 0;

  
  public void sessionCreated(HttpSessionEvent arg0) {
    System.out.println("sessionCreated...");
    count++;
    HttpSession session = arg0.getSession();
    ServletContext sctx = session.getServletContext();
    sctx.setAttribute("count", count);
  }

  
  public void sessionDestroyed(HttpSessionEvent arg0) {
    System.out.println("Session对象被销毁...");
    count--;
    HttpSession session = arg0.getSession();
    ServletContext sctx = session.getServletContext();
    sctx.setAttribute("count", count);
  }
}

index.jsp 代码:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>



    当前系统在线人数


系统在线人数:
<%= application.getAttribute("count") %>

退出

logout.jsp 的示例代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    session.invalidate();
%>


部署好之后,启动服务器,访问:http://localhost:8080/sl/index.jsp,sl 项目的虚拟目录。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号