session&cookie

session和cookie分别是服务器和客户端存储的技术,与java的session和cookie与php的是一样的,毕竟他们的实现不是依靠哪一种语言的

1、创建一个cookie并且写入name和value

Cookie ck = new Cookie("lastAccessTime", "");
ck.setPath("/");//要设置被删除Cookie的path,否则可能会删错对象,path表示cookie的作用范围个人理解
ck.setMaxAge(0);//0相当于删除,大于0表示存活的时长

2、通过response的方法addCookie()添加Cookie对象

response.addCookie(ck);//将ck写回客户端缓存

3、获取cookie

Cookie[] cookies = request.getCookies();//获取客户端的所有Cookie对象
for (int i = 0;cookies!=null && i < cookies.length; i++) {
    if("lastAccessTime".equals(cookies[i].getName())){//判断当前Cookie中的name是否是想要的cookie
        long l = Long.parseLong(cookies[i].getValue());//如果是想要的Cookie,则把Cookie中的value取出
        out.write("你的最后访问时间为:"+new Date(l).toLocaleString());//yyyy-MM-dd
    }
}

session是存在服务器的,可以存储对象,前提是这个对象需要可序列化。这是为了将session存盘,保证当服务器死掉的时候存储的session不会丢失。

1、获取一个session

//通过request对象获取一个session对象
HttpSession session = request.getSession();
session.setAttribute("name","杨林");//想session对象中填写数据,name唯一
System.out.println(session.getId());//获取session的id,这个id是唯一的是存储在cookie当中的

2、获取session的值

HttpSession session = request.getSession();
String name = (String) session.getAttribute("name");

3、session死亡时是关闭浏览器或者设置一个最大的存活时间

session.setMaxInactiveInterval(60*5);//最大存活5分钟

当时间到时其实跟退出登录删除session信息一样的,调用session.invalidate();方法

4、session也可以在配置文件web.xml当中设置最大时间

<session-config>
    <session-timeout>5</session-timeout>
</session-config>

5、session是依赖于cookie的session的id就存在cookie当中,当用户禁用cookie的无法存入session此时需要在servlet当中写入request.getSession();并且在设置url的时候需要使用方法response.encodeURL(url)来支持session。如此一来session就会自动的添加到url的后面

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值