关于HttpSession

关于HttpSession, 在服务器端保存用户状态的一种机制

(1) 获取HttpSession对象的方法:


// 参数为true,表示若存在对应的HttpSession对象,则返回。若不存在,则创建一个新的。

// 若参数为false,表示若存在对应的HttpSession对象,则返回。若不存在,则返回null。

HttpSession session = request.getSession(true);

(2) 对HttpSession对象, 进行存取数据的操作


// 两个参数,分别为命名属性和对应的数据

session.setAttribute("name", data);

// 一个参数,命名属性,注意返回的为Object对象,要强转

session.getAttribute("name");

(3) 比较Session和request:

request:

创建:当用户请求到达服务器的时候。

销毁:当本次请求的应答回到客户端的时候。

  客户端的一次请求应答之间。

session:

创建:当用户第一次调用request.getSession( true )

销毁:超时 ( 两级超时限制 )

    1) 内存 ---> 文件。

    2) 从文件系统销毁。

session的原理:

给每个浏览器一个cookie,这个cookie的name属性为"jsessionid",value属性为这个session对应的ID值。

(4) 当浏览器拒绝cookie时可以用URL把session的id提交给服务器

如:

http://localhost:8989/servletapp/forwardB;jsessionid=37D50D093CCD4A37CC1118785E38F438

"url;jessionid="+ session.getId()

response.encodeURL("url"):对url进行编码

原文地址:https://www.cnblogs.com/yuyu666/p/9743896.html