zoukankan      html  css  js  c++  java
  • 【Head First Servlets and JSP】笔记14:session再探 & Listener示例

     对于session的“CRUD”

    会话迁移

    别忘了HttpSessionBindingListener

    Listener示例

    1、session的“增”与“删”——session的创建和撤销的调用主体是服务端。

    2、session的“改”——由各个servlet执行

    3、那么session的“查找”呢?——依赖于客户端发来的JSESSIONID,以及服务端调用getSession()

    4、会话迁移

    1.  很重要的一句话——HttpSession只有一个!不论有多少个VM。
    2. 迁移的发生:负载平衡服务器接到一个会话id为1的请求,把它交给容器1,结果容器1发现会话id为1的那个session在容器2中,迁移就开始了...
    3. 迁移的意味:在起点vm上“钝化”,在终点vm上激活。

     具体方法暂略。

    5、别忘了HttpSessionBindingListener

    6、Listener示例

    跟踪Web应用中的活动会话个数。

    package com.example;
    
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    public class BeerSessionCounter implements HttpSessionListener {
    
        static private int activeSessions;
    
        public static int getActiveSessions() { // 其它servlet、辅助类可以访问!
            return activeSessions;
        }
    
        @Override
        public void sessionCreated(HttpSessionEvent httpSessionEvent) {
            ++activeSessions;
        }
    
        @Override
        public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
            --activeSessions;
        }
    }
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
             version="2.4">
    
        <servlet>
            <servlet-name>Ch3 Beer</servlet-name>
            <servlet-class>com.example.web.BeerSelect</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>Ch3 Beer</servlet-name>
            <url-pattern>/SelectBeer.do</url-pattern>
        </servlet-mapping>
        
        <listener>
            <listener-class>
                com.example.BeerSessionCounter
            </listener-class>
        </listener>
    
    </web-app>
  • 相关阅读:
    owlCarousel 用法心得1 -20170405
    js数组去重的四种方法
    js获取url参数值
    jq index()
    jQuery(expression,[context])
    音乐播放器的实现+显示当前时间的歌词(只显示当前时间的文本)
    iOS自动布局框架-Masonry详解
    ios -完全实现代码设置 Could not find a storyboard named 'Main' in bundle NSBundle
    Python使用MySQL数据库的
    iOS 阿里百川SDK集成注意点
  • 原文地址:https://www.cnblogs.com/xkxf/p/6965279.html
Copyright © 2011-2022 走看看