• 【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>
  • 相关阅读:
    没有什么,开发ASP.NET时随便写写,想到什么写什么
    MS SQL Server带有时间的记录怎样查询
    给RadioButtonList绑定Selected的值
    在GridView控件内文本框实现TextChanged事件
    MS SQL Server递归查询
    ASP.NET MVC使用jQuery无刷新上传
    MySQL 慢查询操作梳理
    ubuntu系统下防火墙简单使用
    crontab日常使用梳理
    ubuntu下nginx+php5的部署
  • 原文地址:https://www.cnblogs.com/xkxf/p/6965279.html
Copyright © 2020-2023  润新知