Java Web——Servlet的监听器接口(ServletContextListener、ServletContextAttributeListener)

简介: Java Web——Servlet的监听器接口(ServletContextListener、ServletContextAttributeListener)

文章目录:


1.介绍

2.监听器作用

3.监听器接口实现类开发步骤

4.ServletContextListener接口

5.ServletContextAttributeListener接口


1.介绍


一组(8个)来自于Servlet规范中接口。

监听器接口由项目开发人员负责实现。

监听器负责监听 作用域对象 并在指定事件中调用监听处理方法。

作用域对象:存在于服务端计算机内存中,可以在指定条件下为servlet之间提供数据共享服务的对象。


Servlet规范中定义作用域对象:3个


1.ServletContext接口----全局作用域对象

2.HttpSession接口  ------会话作用域对象

3.HttpServletRequest接口----请求作用域对象


2.监听器作用


1) 监听作用域对象生命周期变化时刻

2) 监听作用域对象存放共享数据变化时刻


3.监听器接口实现类开发步骤


1)根据监听目的选择对应接口进行实现


2)重写监听器接口中事件处理方法,这些方法在指定事件产生时由tomcat负责调用


3)web.xml向tomcat注册监听器接口实现类


4.ServletContextListener接口


监听全局作用域对象生命周期变化时刻。


package com.songzihao.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
 *
 */
public class OneListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("恭喜恭喜,祝你今生平平安安!!!");
    }
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("兄弟走好!!!");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 注册监听器 -->
    <listener>
        <listener-class>com.songzihao.listener.OneListener</listener-class>
    </listener>
</web-app>


5.ServletContextAttributeListener接口


监听全局作用域对象共享数据变化时刻。

package com.songzihao.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class OneServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext application=request.getServletContext();
        //新增共享数据
        application.setAttribute("key1",100);
        //更新共享数据
        application.setAttribute("key1",500);
        //移除共享数据
        application.removeAttribute("key1");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}


package com.songzihao.listener;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
/**
 *
 */
public class OneListener implements ServletContextAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent event) {
        System.out.println("新增了共享数据");
    }
    @Override
    public void attributeRemoved(ServletContextAttributeEvent event) {
        System.out.println("移除了共享数据");
    }
    @Override
    public void attributeReplaced(ServletContextAttributeEvent event) {
        System.out.println("更新了共享数据");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 注册监听器 -->
    <listener>
        <listener-class>com.songzihao.listener.OneListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>OneServlet</servlet-name>
        <servlet-class>com.songzihao.controller.OneServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>OneServlet</servlet-name>
        <url-pattern>/one</url-pattern>
    </servlet-mapping>
</web-app>




相关文章
|
8月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
726 1
|
8月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
882 0
|
9月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
956 64
|
9月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
556 1
|
10月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
976 0
|
Java
Java接口和抽象类
Java接口和抽象类
251 0
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
260 0
|
设计模式 Java
【惊天揭秘】Java编程绝技大曝光:接口、抽象类、静态类与非静态类的神秘面纱终被揭开!
【8月更文挑战第22天】Java支持面向对象编程,通过接口、抽象类、静态类(如枚举与工具类)及普通类实现设计原则。接口定义行为规范,允许多重继承;抽象类含未实现的抽象方法,需子类完成;静态类常为工具类,提供静态方法;普通类则实例化对象。恰当运用这些结构能提升程序质量。
219 2
|
Java 开发者
Java中的接口和抽象类
Java中的接口和抽象类
293 3
Java的接口与抽象类的区别
Java的接口与抽象类的区别
271 5