博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cookie的除了会话其他用处
阅读量:4112 次
发布时间:2019-05-25

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

可以使用cookie在服务器和客户之间交换名/值String对

服务器把cookie发送给客户,客户再在以后的每个请求中把cookie发回。

客户的浏览器退出时,会话cookie就会消失,但是你可以告诉cookie在客户端上待得更久一些,甚至在 浏览器关闭之后 还持久保存。

要知道 cookie构造函数- getMaxAge()及setMaxAge()方法。

对于首部既有setHeader()方法,又有addHeader()方法(如果已经有这个首部,addHeader会向这个现有的首部增加一个值, 而setHeader会替换现有的值)  但是不存在setCookie()方法。 只有一个addCookie()方法

 

 

 

看看 具体的会话迁移

 

实现Serializable的类还可以实现一个wrtieObject()方法,逆串行化对象时就由VM调用这个方法,另外还有可以实现一个readObject()方法,这个方法在对象串行化时调用Serializalbe对象可以使用这个方法来做一些事情,比如,在串行化期间把非Serializable的字段设置为null(writeObject()),然后在逆串行化期间再恢复这些字段(readObject())。

但是 在会话迁移中 一定会调用这些方法 所以,如果你想保存和恢复属性中的实例变量状态,可以使用HttpSessionActivationListener,并使用两个事件回调方法(sessionDidActivate()和sessionWillPassivate()),就像使用redadObject()和writeObject()一样

 

import javax.servlet.http.*;

 public class SessionCounter implements HttpSessionListener{

    static priate int  activeSessions;

 

     public static int getActiveSessions() {                                 //  这个类回想所有其他WEB-app类一样  部署在    WEB-INF/classes中,  这样所有 servlet和其他辅助类都能访问这个方法。

        return activeSeesions;  

 }

     public void sessionCtreated(HttpSessionEvent event){     //  取一个HttpSessionEvent参数

        activeSeesions++;

 }

     public void seesionDestroyed(httpSessionEvent event){   //  取一个HttpSessionEvent参数

        activeSeesions--;

 }

}

 

——————————————————————————————————————————

HttpSession.getAttribute(String)的返回类型是Object

 

 

 

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

你可能感兴趣的文章
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
【java基础】父类与子类中各成员初始化顺序
查看>>
maven安装并在eclipse中配置
查看>>