java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JavaWeb Session跨页面传递

JavaWeb实现Session跨页面传递数据

作者:_GGBond_

本文主要介绍了 JavaWeb实现Session跨页面传递数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、什么是 Session 会话?

二、如何创建 Session 和获取(id 号,是否为新)

如何创建和获取 Session。它们的 API 是一样的。

request.getSession() 第一次调用是:创建 Session 会话之后调用都是:获取前面创建好的 Session 会话对象。

isNew()判断到底是不是刚创建出来的(新的)true 表示刚创建false 表示获取之前创建

每个会话都有一个身份证号。也就是 ID 值。而且这个 ID 是唯一的。 getId() 得到 Session 的会话 id 值。

三、Session 域数据的存取

/**
* 往 Session 中保存数据
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void setAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
req.getSession().setAttribute("key1", "value1");
resp.getWriter().write("已经往 Session 中保存了数据");
}
/**
* 获取 Session 域中的数据
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void getAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
Object attribute = req.getSession().getAttribute("key1");
resp.getWriter().write("从 Session 中获取出 key1 的数据是:" + attribute);
}

四、Session 生命周期控制

 <session-config> <session-timeout>30</session-timeout> </session-config>

如果说。你希望你的 web 工程,默认的 Session 的超时时长为其他时长。你可以在你自己的 web.xml 配置文件中做 以上相同的配置。就可以修改你的 web 工程所有 Seession 的默认超时时长。

<!--表示当前 web 工程。创建出来 的所有 Session 默认是 20 分钟 超时时长--> 
<session-config> 
<session-timeout>20</session-timeout>
 </session-config>

如果你想只修改个别 Session 的超时时长。就可以使用上面的 API。setMaxInactiveInterval(int interval)来进行单独的设 置。session.setMaxInactiveInterval(int interval)单独设置超时时长。

Session 超时的概念介绍:

Session的超时是指在一段时间内没有活动或用户不再与服务器进行交互时,会话数据将自动过期失效。在Web开发中,会话是用来跟踪用户在网站上的活动状态的一种机制。当用户登录到网站或应用程序时,服务器会为其创建一个会话,并分配一个唯一的会话ID。该会话ID通常存储在一个名为"session cookie"的小文件中,发送给用户的浏览器。

每当用户与服务器进行交互(例如访问页面,提交表单,或者与应用程序进行交互),服务器都会根据会话ID来识别用户,并根据需要更新会话数据。会话数据可能包括用户登录信息、购物车内容、用户偏好设置等等。

然而,如果用户在一段时间内没有任何活动,服务器会自动将该会话标记为过期。这样做的原因是为了安全和资源管理考虑。如果一个会话保持长时间处于活动状态,这可能会导致资源浪费和安全风险,因为其他人可能可以利用该会话进行非法操作。因此,通过设置会话超时时间,可以确保闲置会话在一段时间后自动关闭,从而降低风险并释放服务器资源。

会话超时时间可以根据具体的应用场景和安全需求进行配置。通常,银行或其他敏感信息应用可能会设置较短的会话超时时间,以增加安全性。而在一些社交媒体或新闻网站等应用中,可能会设置较长的会话超时时间,以提供更好的用户体验。

总的来说,会话超时是会话管理的重要方面,有助于平衡用户体验和安全性之间的关系。

  protected void life3(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 先获取Session对象
        HttpSession session = req.getSession();
        // 设置当前Session3秒后超时
        session.setMaxInactiveInterval(3);
        resp.getWriter().write("当前Session已经设置为3秒后超时");
    }

Session 马上被超时示例:

 protected void deleteNow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 先获取Session对象
        HttpSession session = req.getSession();
        // 让Session会话马上超时
        session.invalidate();
        resp.getWriter().write("Session已经设置为超时(无效)");
    }
 protected void defaultLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取了Session的默认超时时长
        int maxInactiveInterval = req.getSession().getMaxInactiveInterval();
        resp.getWriter().write("Session的默认超时时长为:" + maxInactiveInterval + " 秒 ");
    }

五、Session的销毁

在计算机科学和网络编程中,"session"一词可以指代多个概念,因此有几种情况可能导致会话(session)销毁。以下是一些常见的情况:

五、浏览器和 Session 之间关联的技术内幕

浏览器和Session之间的关联涉及到几个关键技术内幕。在Web开发中,会话(Session)是一种在服务器和浏览器之间跟踪用户状态的机制。以下是浏览器和Session之间关联的技术内幕:

总体来说,浏览器和Session之间的关联是通过Cookie技术实现的。Cookie中存储的Session ID允许服务器识别用户,并跟踪和管理用户的会话状态。这样,服务器可以为每个用户提供个性化和连续的服务,而不需要每次都重新验证身份或重复操作。

到此这篇关于 JavaWeb实现Session跨页面传递数据的文章就介绍到这了,更多相关 JavaWeb Session跨页面传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文