Servlet 监听器----Servlet Context

来源:互联网 发布:java pdf转换html代码 编辑:程序博客网 时间:2024/06/04 18:51

Servlet Context监听器

在ServletContext级别上有两个监听器接口:ServletContextListener和ServletContextAttributeListener

1.ServletContextListener

    ServletContextListener会对ServletContext的初始化和解构做出响应。ServletContext被初始化时,Servlet容器会在所有已经注册的ServletContextListener中调用contextInitialized()    当ServletContext要被解构和销毁时,Servlet容器会在所有已经注册的ServletContextListener中调用contextDestroyed(),    contextInitialized和contextDestroyed都会接收到一个来自Servlet的ServletContextEvent。

实例

Java类

public class AppListener implements ServletContextListener{    @Override    public void contextDestroyed(ServletContextEvent sce) {    }    @Override    public void contextInitialized(ServletContextEvent sce) {        // TODO Auto-generated method stub        ServletContext servletContext = sce.getServletContext();        Map<String, String> countries = new HashMap<String, String>();        countries.put("ca", "canada");        countries.put("ch", "China");        servletContext.setAttribute("countries", countries);    }}
    contextInitialized的代码实现。    首先在Servlet传递的ServletContextEvent中调用getServletContext方法,然后再创建一个Map,填入两个值,把Map作为ServletContext的属性

在部署描述符上注册监听

    <listener>        <listener-class>listener.AppListener</listener-class>    </listener>

使用

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Country List</title></head><body>    List:    <ul>        <c:forEach items="${countries }" var="country">            <li>${country.value }</li>        </c:forEach>    </ul></body></html>

效果:
这里写图片描述

2.ServletContextAttributeListener

    每当ServletContext中添加,删除或替换了某个属性时,ServletContextAttributeListener的实现都会收到通知,    该监听器接口种有三个方法:    void attributeAdded(ServletContextAttributeEvent event)    void attributeRemoveed(ServletContextAttributeEvent event)    void attributeReplaced(ServletContextAttributeEvent event)获取属性名和属性值,使用以下两个方法java.lang.String getName()java.lang.Object getValue()
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我是五年级惹上混混怎么办 孩子挨欺负家长怎么办幼儿园 孩子被同学欺负不敢上学怎么办 孩子被欺负不敢还手怎么办 2个月的婴儿内热怎么办 孩子把别人打了怎么办 学生在学校被打怎么办 妈和老丈人搞外遇怎么办? 丈人住在双方出资房中怎么办 金木水火土缺水怎么办? 练太极注意不集中怎么办 白色裙子被染色了怎么办 两边的头发向外翘怎么办 感冒的前兆来了怎么办 压腿把筋拉伤了怎么办 压腿压不下去了怎么办 床的气压杆坏了怎么办 床打开压不下去怎么办 裤子大了怎么办小窍门 小孩不准守课堂纪律怎么办 学生在学校体育课受伤怎么办 手指被篮球砸肿了怎么办 眼睛被篮球砸了怎么办 宝宝被篮球砸了怎么办 手被篮球砸肿了怎么办 上体育课时脚不慎扭伤怎么办 孩子受伤没有参加考试怎么办 如果我想离婚对方不愿意怎么办 金龙自切尾怎么办 微信无法正常打开怎么办 大三下体育挂了怎么办 大二体育挂科了怎么办 大四体育老师不给成绩怎么办 大四必修挂科了怎么办 大学挂了20科怎么办 大专重修都没过怎么办 如果孩子一年级就考不及格怎么办 后滚翻做不过去怎么办 练习颠球时脚面总网上翘怎么办 踢完足球腿疼怎么办 针对初中不听话的学生怎么办