在servlet里调用httpsession方法是 request.getSession(); 第一次调用时会生成一个新的session(session.isNew() 返回true)。getSession()还有个带boolean型参数的方法。getSession(false)表示只能取存在的session,如果没有则返回null。
客户端和httpsession交互时通过存在cookie里的sessionId来确认身份,每次的request都会包含这个sessionId。如果客户端的浏览器不允许cookie的话,只能采用将sessionId存在url后面这种方式了,采用这种方式的话,必须对url进行解码:
或者像这样:
这些都是在服务器端做的,因为只有服务器知道sessionId。
可通过
来强制关闭session。
session cookies会在session结束后消失,但也可以一直保留cookies这样服务器就会记住这个用户一样。一般情况下
HttpServletRequest.getCookies();
HttpServletResponse.addCookie();
还有Cookie类可以对它进行操作。
客户端和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类可以对它进行操作。