Session入门

Session

Cookie的局限性:1、Cookie只能存储字符串,而且不能是中文
2、一个Cookie只能存储4KB大小的内容
会话管理除了Cookie之外,还有Session。
Session的存储原理:Session将数据存储在服务器端的内存中,不过还需要将JSessionId存储到Cookie中,并保存到客户端。
Session失效:浏览器关闭,默认JSessionId被清除,但是Session依然存储在服务器端的内存中,会有一个线程定时的去清除session。
在这里插入图片描述
代码演示
1、用户访问Servlet时创建Session,并且赋值

/**
 * 创建session,并赋值
 * @author 紫炎易霄
 */
@WebServlet("/zyyx")
public class SessionDemo extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		HttpSession session = req.getSession(true);
		session.setAttribute("name", "紫炎易霄");
		req.getRequestDispatcher("/printSessionId").forward(req, resp);
	}
}

2、打印SessionId的Servlet

/**
 * 打印sessionId
 * @author 紫炎易霄
 */
@WebServlet("/printSessionId")
public class PrintSessionId extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		HttpSession session = req.getSession();
		String sessionId = session.getId();
		String value = (String) session.getAttribute("name");
		System.out.println(sessionId+"------"+value);
	}
}

运行结果
在这里插入图片描述
在这里插入图片描述
清除浏览器中的Cookie
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值