servlet随笔-web的常用对象Cookie和Session

一、Cookie

  1. Cookie创建和发送
// 创建Cookie对象
Cookie cookie = new Cookie("user", "uname=zhangsan&upwd=123");	
// 响应Cookie
resp.addCookie(cookie);
  1. Cookie的获取
Cookie[] cookies = req.getCookies();
// 判断数组是否为空
if (cookies != null && cookies.length > 0) {
	// 遍历cookie数组
	for (Cookie cookie : cookies) {
		System.out.println("名称:" + cookie.getName() + ",值:" + cookie.getValue());
		if("user".equals(cookie.getName())) {
			System.out.println("Cookie:" + cookie.getValue());
		}
		System.out.println("解码:" + URLDecoder.decode(cookie.getValue()));
	}
}
  1. Cookie 到期时间的设定
// 创建Cookie对象
Cookie cookie = new Cookie("uname", "zhangsan");
		
// 设置cookie的到期时间
// cookie.setMaxAge(-1); // 默认值,负整数表示在当前浏览器中存活,关闭浏览器即失效
// cookie.setMaxAge(20); // 正整数,表示cookie在浏览器中存活指定秒数,关闭浏览器也不影响
cookie.setMaxAge(0); // 零,表示即刻删除,浏览器中不保存
		
// 发送cookie
resp.addCookie(cookie);
  1. Cookie的路径
System.out.println("Cookie05...");
// 创建Cookie对象
Cookie cookie = new Cookie("uname2", "lisi");
// 设置cookie的路径 (/站点名/路径)
cookie.setPath("/sc04/test/ck05");
// 发送cookie
resp.addCookie(cookie);	
// 创建Cookie对象
Cookie cookie2 = new Cookie("uname3", "wangwu");
// 设置cookie的路径 
cookie2.setPath("/"); // 设置当前服务器下的所有路径都能访问到  定位到端口后面
// 发送cookie
resp.addCookie(cookie2);

二、Session

标识一次会话,或者说确认一个用户;并且在一次会话(一个用户的多次请求)期间共享数据。

  1. 创建获取Session
// 创建或获取Session对象
HttpSession session = req.getSession();
System.out.println(session);
	
// 获取会话的标识符
String id = session.getId();
System.out.println("标识符: " +id);

// 判断session是否是新建的 是=true
boolean flag = session.isNew();
System.out.println("是否是新的: " + flag);

// 获取第一次访问的时间
long createTime = session.getCreationTime();
System.out.println("获取第一次访问的时间: " + createTime);

// 获取最后一次访问时间
long lastAccessTime = session.getLastAccessedTime();
System.out.println("获取最后一次访问的时间: " + lastAccessTime);
  1. Session域对象
// 获取session对象
HttpSession session = req.getSession();
System.out.println("Session02: " + session.getId());
// 设置session域对象
session.setAttribute("uname", "zhangsan");		
		
// 设置request域对象
req.setAttribute("uname", "lisi");
			
// 请求转发跳转 (request域对象和session域对象数据都可以获取到)
// req.getRequestDispatcher("se03").forward(req, resp);
		
// 重定向 (request域对象失效,session域对象可获取)
resp.sendRedirect("se03");
  1. 获取域对象
// 获取session对象
HttpSession session = req.getSession();
System.out.println("Session03: " + session.getId());
		
// 获取session域对象
String uname = (String) session.getAttribute("uname");
System.out.println("Session: " + uname);
		
// 获取request域对象
String uname2 = (String) req.getAttribute("uname");
System.out.println("Request: " + uname2);

4.Session的销毁

达到系统最大不活动时间(沉默时间)
默认30分钟,Tomcay服务器规定的。可以在服务器目录下的web.xml中修改最大不活动时间。

<session-config>
	 <session-timeout>30</session-timeout>
</session-config>
// 获取session对象
HttpSession session = req.getSession();
System.out.println(session.getId());
		
// 获取最大不活动时间
System.out.println(session.getMaxInactiveInterval()); // 默认1800
		
// 自己手动设置最大不活动时间   通过session.setMaxInactiveInterval(int);来设定 session 的最大不活动时间,单位为秒。
session.setMaxInactiveInterval(100);

// 手动销毁
// session.invalidate();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值