servlet的session管理

在servlet里调用httpsession方法是 request.getSession(); 第一次调用时会生成一个新的session(session.isNew() 返回true)。getSession()还有个带boolean型参数的方法。getSession(false)表示只能取存在的session,如果没有则返回null。

客户端和httpsession交互时通过存在cookie里的sessionId来确认身份,每次的request都会包含这个sessionId。如果客户端的浏览器不允许cookie的话,只能采用将sessionId存在url后面这种方式了,采用这种方式的话,必须对url进行解码:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println(“<html><body>”);
out.println(“<a href=\”” + response.encodeURL(“/BeerTest.do”) + “\”>click me</a>”);
out.println(“</body></html>”);
}

或者像这样:

response. encodeRedirectURL(“/BeerTest.do”)

这些都是在服务器端做的,因为只有服务器知道sessionId。
可通过
session.invalidate();

来强制关闭session。

session cookies会在session结束后消失,但也可以一直保留cookies这样服务器就会记住这个用户一样。一般情况下
HttpServletRequest.getCookies();
HttpServletResponse.addCookie();
还有Cookie类可以对它进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值