Session 跟踪

Session 跟踪

我们知道 HTTP 协议是无状态的。为了跟踪用户的操作状态,JSP 使用一个叫 HttpSession 的对象实现同样的功能。

HttpSession 是一个建立在 cookies 和 URL-rewriting 上的高质量的界面。Session 的信息保存在服务器端,Session 的 id 保存在客户机的 cookie 中。事实上,在许多服务器上,如果浏览器支持的话它们就使用 cookies,但是如果不支持或废除了的话就自动转化为 URL-rewriting,session 自动为每个流程提供了方便地存储信息的方法。

Session 一般在服务器上设置了一个 30 分钟的过期时间,当客户停止活动后自动失效。

Session 中保存和检索的信息不能是基本数据类型如 intdouble 等,而必须是 Java 的相应的对象,如 IntegerDouble

HttpSession API

方法说明
getId()返回唯一的标识,这些标识为每个 session 而产生。当只有一个单一的值与一个 session 联合时,或当日志信息与先前的 sessions 有关时,它被当作键名用
getCreationTime()返回 session 被创建的时间。最小单位为毫秒
getLastAccessedTime()返回 session 最后被客户发送的时间。最小单位为千分之一秒
getMaxInactiveInterval()返回总时间(秒),负值表示 session 永远不会超时
getAttribute()取一个与 session 相联系的信息
setAttribute()提供一个关键词和一个值。会替换掉任何以前的值

示例代码

首先是 index.jsp 里面:

<body>
    <%
        session.setAttribute("site", new String("www.bamn.cn"));
    %>
</body>
</html>Code language: HTML, XML (xml)

然后是在 second.jsp 里面:

<body>
    <%
        String site = (String) session.getAttribute("site");
        out.println("从 session 里取出的值为:" + site);
    %>
</body>
</html>Code language: HTML, XML (xml)

然后先访问 index.jsp 再访问 second.jsp

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注