为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
JAVA Web开发技术应用——监听器_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA Web开发技术应用——监听器

Fcming 产品经理
难度初级
时长 1小时30分
  • 3.0需要满足的条件
    查看全部
  • servlet3.0监听器,通过注解方式。
    查看全部
  • 按监听的事件划分
    查看全部
  • 统计在线人数 1.在ServletContext(application)中设置一个Attribute(int)记录在线人数 2.用HttpSessionListener的实现类监听Session创建和销毁事件,Session创建更新在线人数+1,Session销毁更新在线人数-1 (注意在会话结束后Session仍驻留服务器内存一段时间) 记录在线用户的详细信息 1.在ServletContext(application)中设置一个Attribute(List<User>)记录在线用户信息 2.要获取用户信息需要request对象,而HttpSessionListener的实现类不能获取,因此需要使用ServletRequestListener的实现类,同时用户下线仍需要通过Session销毁判断,因此也需要使用HttpSessionListener的实现类 3.一个session对应多个request,通过sessionId(记录在User中)来识别一个用户的多个request 4.新增在线用户:有新的request创建时,且sessionId和已有用户不同,表示新增了在线用户,将该用户对象加入到List<User>并更新到ServletContext(application) 5.在线用户下线:当session销毁时,将通过sessionId将对应用户移除并更新到ServletContext(application)
    查看全部
  • 监听Session中对象状态变化的监听器: 注意:这里不是单独建立监听器,而是让被监听的对象的类实现xxxListener接口,也无需在web.xml注册 1.对象的绑定和解除绑定(即setAttribute/removeAttribute) implements HttpSessionBindingListener,还要实现序列化接口Serializable 绑定:valueBound方法 解除绑定:valueUnbound方法 2.对象的钝化和活化 implements HttpSessionActivationListener 钝化:sessionWillPassivate方法 活化:sessionDidActivate方法
    查看全部
  • ServletRequest的事件监听器 实现ServletRequestListener接口用于监听它的创建和销毁事件 一个ServletRequest可以注册多个ServletRequestListener接口, 在web.xml中注册 有两个事件处理方法: requestInitialized方法: public void requestInitialized(ServletRequestEvent sre) request创建时调用 参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest() 进而获取初始化参数:sr.getInitParmeter("") requestDestroyed方法: public void requestDestroyed(ServletRequestEvent sre) request销毁时调用 ServletRequest的主要用途: 读取参数 记录访问历史 request监听的是用户的每一个访问请求
    查看全部
  • HttpSession的创建和销毁 实现HttpSessionListener接口用于监听它的创建和销毁事件 一个HttpSession可以注册多个HttpSessionListener接口, 一个web应用中可以有多个HttpSession对象 有两个事件处理方法: sessionCreated方法: public void sessionCreated(HttpSessionEvent se) session创建时调用 sessionDestroyed方法: public void sessionDestroyed(HttpSessionEvent se) session销毁时调用 HttpSessionListener的主要用途: 统计在线人数 记录访问日志,记录访问时间、访问的ip /** * 销毁session * 1.关闭服务器 * 2.关闭浏览器 * 3.不关闭浏览器,session超时 */ 不关闭浏览器,session超时 可以在web.xml配置session超时的时间 <session-config> <session-timeout>0</session-timeout> </session-config> 0:session没有超时的限制 1:session超时1分钟后销毁,但是并不是准确的一分钟
    查看全部
  • suollon 第一遍听,确实比较难懂。首先,你要明白几个知识点,就好懂多了: 目的:获取在线(用户数量)+打印(用户列表)。用户列表需包含三个信息(1、sessionId 2、ip 3、firstTime)。 原理:服务器会为每个用户创建一个session,而一个用户在这个session生命周期中,可以多次访问浏览器(即,多个request)。 注意事项一:用户列表中的ip只能从request中获取,所以添加用户信息需要在request的init方法中操作 注意事项二:如原理所说,只有当session销毁时,才能说明用户已经下线。所以需要在session的destroy方法中减去用户。 时间: 2016-09-15 8
    查看全部
  • 慕粉4303026 思路很清晰了,因为理解了监听器就是一个事件---动作模型,所以对于这个例子的代码的逻辑也能够有一个非常清晰的理解,我来分析一下这个例子。 第一:统计在线用户人数,是利用了httpSessionListener这个监听器来完成,当服务器生成一个session对象时,触发了时间,然后专区监听器执行相应的初始化方法,这里的初始化方法,是number++,当然为了方便在jsp页面中显示,这个number要保存到全局变量中,也就是application的(getServletContext())的setAttribute()中。 接下来分析第二个例子,就是保存用户的一些信息。请看下一条评论 时间: 2017-05-10 2
    查看全部
  • 按监听事件划分
    查看全部
  • 按监听对象划分
    查看全部
  • 启动顺序
    查看全部
  • 监听器总结 A.按监听器的对象划分: 1、用户监听应用程序环境对象(ServletContext)的时间监听器 2、用于监听用户会话对象(HttpSession)的事件监听器 3、用于监听请求消息对象(ServletRequest)的事件监听器。 B.按事件划分: 1、监听三个域对象创建和销毁的事件监听器 ServletRequestListener有以下两个方法: void requestDestroyed(ServletRequestEvent sre) void requestInitialized(ServletRequestEvent sre) HttpSessionListener有以下两个方法: void sessionCreated(HttpSessionEvent se) void sessionDestroyed(HttpSessionEvent se) ServletContextListener有以下两个方法: void contextDestroyed(ServletContextEvent sce) void contextInitialized(ServletContextEvent sce) 2、监听域对象中属性的增加和删除的事件监听器 ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener 3、监听绑定到HttpSession域中的某个对象的状态的时间监听器 注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化(Servlet3.0下) HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定和解绑 HttpSessionActivationListener:实现该接口的类(要求javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化
    查看全部
    0 采集 收起 来源:监听器总结

    2017-09-29

  • ****重点****重点***重点**** 1.统计在线人数:使用ServletSessionListener监听器的初始化和销毁实现增加和删除 2.在线用户信息:使用ServletRequestListener监听器的初始化实现获取用户信息: HttpServletRequest对象.getSession().getId();//获取session的ID HttpServletRequest对象.getRemoteAddr();//获取用户ip地址 3.保存:保存于全局的getSession.getServletContext().getAttribute("","")里面 4.${userNumber}是EL表达式,可以获取userNumber的值 EL表达式:取出某一范围中名称为username的变量,由于没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 如果找到username,则直接回传,如果没有找到时,则回传null。 request.getSession().setAttribute(); 这个就是把属性值放到session中,比如单个用户信息 request.getSession().getServletContext().setAttribute(); 这个就是把属性值放到application中,比如网站登录人数 ServletRequestEvent arg0 HttpServletRequest request = (HttpServletRequest) arg0.getServletRequest(); 获取的对象是ServletRequest,需要强制类型转换
    查看全部
  • servlet3.0下监听器的用法
    查看全部

举报

0/150
提交
取消
课程须知
亲,要学习本门课程需要对JSP和Servlet有所了解呦。如未学习上述知识,可移步网站相关课程。
老师告诉你能学到什么?
通过对本课程的学习,可以掌握监听器的基础知识,深入了解监听器的处理机制和分类方式,并可以让自己更快的动手编写监听器的例子。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!