博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
方法sessionjsp之监听器
阅读量:6326 次
发布时间:2019-06-22

本文共 2962 字,大约阅读时间需要 9 分钟。

发一下牢骚和主题无关:

    (1)什么是监听器?

    是servlet标准当中定义的一种特殊的组件,用来监听容器发生的事件并且停止响应的处理。

    容器会发生两大类事件:

    a,生命周期相关的事件:容器创建或者销毁request,session,ServletContext(servlet上下文)这些对象时发生的事件。b,绑订相关的事件:

    对request,session,ServletContext(servlet上下文)调用了setAttribute,removeAttribute发生的事件。

    (2)如何写一个监听器?

    step1, 写一个java类,实现响应的监听器接口(要看监听的事件类型: HttpSessionListener)。

    step2, 在监听器接口对应的方法里面,实现监听的处理逻辑。

    step3,注册(web.xml)

    (3)ServletContext

    1)什么是Servlet上下文?

    容器在启动的时候,会为每个应用创建唯一的一个

    符合ServletContext接口的一个对象。该对象会始终存在,

    除非关闭容器。

    2)如何获得servlet上下文?

    a,GenericServlet供给了getServletContext方法。

    b,ServletConfig供给了getServletContext方法。

    c, FilterConfig供给了getServletContext方法。

    d, HttpSession供给了getServletContext方法。

    3)servlet上下文的作用?

    a,绑订相关的方法

    setAttribute,removeAttribute,getAttribute

    request,session,ServletContext这三个对象都有绑订

    相关的方法,应当优先应用生命周期短(request<session

    <servlet上下文)的。

    b, 拜访全局的初始化参数

    step1, 应用<context-param>来配置,该参数可以被

    所有的servlet,filter拜访。

    step2, 应用ServletContext供给的getInitParameter方法

    来获取参数值。

    c, 获得实际部署时的物理路径。

    String getRealPath(String path);

    通过代码先懂得一下servletContext,即servlet上下文。   

//获得ServletContext    	  ServletContext sctx=getServletContext();    	  sctx.setAttribute("username","user1");    	  out.println("已将username绑定"+"到了ServletContext下面");

    输出通过servletContext得到的内容:

ServletContext sctx=getServletContext();           String username=(String)sctx.getAttribute("username");

    配置web.xml:

version
1.0
web.CountListener
    每日一道理
生活的无奈,有时并不源于自我,别人无心的筑就,那是一种阴差阳错。生活本就是矛盾的,白天与黑夜间的距离,春夏秋冬之间的轮回,于是有了挑剔的喜爱,让无奈加上了喜悦的等待。

    在servlet中得到该数据:

String version=sctx.getInitParameter("version");    	  out.println("version:"+version);

    最后写一个统计在线人数的程序,利用到监听器知识,即触发某个事件时,对应的方法自动触发执行:

    step1

    编写servlet

import javax.servlet.ServletContext;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class CountListener implements HttpSessionListener {     //session对象一旦创建胜利,会执行该方法	private int count=0;	public void sessionCreated(HttpSessionEvent arg0) {		// TODO Auto-generated method stub		count++;		HttpSession session=arg0.getSession();		ServletContext sctx=session.getServletContext();		sctx.setAttribute("count", count);	}     //session对象被销毁会执行该方法	public void sessionDestroyed(HttpSessionEvent arg0) {		// TODO Auto-generated method stub		count--;		HttpSession session=arg0.getSession();		ServletContext sctx=session.getServletContext();		sctx.setAttribute("count", count);	}     }

    step2

    配置全局化参数:

web.CountListener

    step3,编写jsp文件

      当前系统在线人数是:      <%=application.getAttribute("count") %>           <%=application.getAttribute("username") %>    
退出系统

    step4,编写logout.jsp文件

    <%       session.invalidate();     %>  

文章结束给大家分享下程序员的一些笑话语录: 马云喜欢把自己包装成教主,张朝阳喜欢把自己包装成明星,李彦宏喜欢把自己包装成的很知性,丁磊喜欢把自己包装的有创意,李开复总摆出一副叫兽的样子。看来的。其实我想说,缺啥补啥,人之常情。

--------------------------------- 原创文章 By

方法和session
---------------------------------

转载地址:http://wmdaa.baihongyu.com/

你可能感兴趣的文章
phpize php扩展模块安装
查看>>
authorization与URL授权
查看>>
JDK的目录结构及结构图
查看>>
值传递和引用传递-----函数参数传递的两种方式
查看>>
php随机密码函数的实例代码
查看>>
VC++中调用cmd的集中方式
查看>>
[LeetCode] Valid Word Abbreviation 验证单词缩写
查看>>
Shiro 学习笔记(二)——shiro身份验证
查看>>
JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)
查看>>
你不是真正的快乐
查看>>
201707舆情分析系统代码
查看>>
C#在自定义事件里传递自定义数据,使用EventArgs的姿势
查看>>
Memcached常用命令及使用说明
查看>>
Asp.net 前后台操作cookie 实现数据的循环下载
查看>>
MyGeneration学习笔记(9) :在WebService使用dOOdad时,对ToXml/FromXml的一点改进
查看>>
[开发笔记]MySQL & Python经验两则
查看>>
Delphi IDE 之 Object Inspector (对象检查器)
查看>>
关于母版页的按钮事件
查看>>
Using script to submit INV Manager to process MTI/MMTT
查看>>
.net 前台判断
查看>>