您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
19_会话技术_Session_细节1(用cookie来控制session关闭客户端也能持久一段时间)
发布时间:2022-09-03 22:39:22编辑:雪饮阅读()
session默认基于cookie实现,cookie默认又是浏览器关闭即销毁。
则session默认也遵循了该规则,那么我们也可以通过cookie来干预这种规则。
实例如:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ServletSession1")
public class ServletSession1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//直接在页面中输出session对象实例,则以该对象实例的引用地址输出,
// 可以通过此方法对比当客户端不关闭(例如多个浏览器标签)访问时与客户端关闭(直接关闭浏览器)后重新打开时获取的session是否为同一个session
//则默认情况可以发现关闭客户端后重新打开与不关闭客户端直接访问时候的session自然是不同的
//response.getWriter().write(String.valueOf(request.getSession()));
//那么,其实session默认是基于cookie的,所以,我们可以通过cookie来干预,比如我们设置为在1小时内同一个客户端(浏览器)获取的session是相同的
Cookie c=new Cookie("JSESSIONID",request.getSession().getId());
c.setMaxAge(60*60);
response.addCookie(c);
response.getWriter().write(String.valueOf(request.getSession()));
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
关键字词:会话技术,Session,细节,cookie,控制s,关闭,客户,持久.时间
上一篇:17_会话技术_Session_快速入门(session设置及获取)
下一篇:20_会话技术_Session_细节2(session实例引用地址不同并不代表session不同(特别是钝化与活化时))