【发布时间】:2012-10-11 14:00:05
【问题描述】:
我有两个问题,
当 JSP 具有
<%@page session="false" %>时,我可以使用 JSTL 标记访问会话范围的变量吗?在我的 Web 应用程序中,我在登录时从 servlet 创建一个新会话,使用request.getSession()并在此后设置属性。但是,我的 JSP 页面不包含<%@ page session="false" %>,并且我正在使用 JSTL 标记来显示存储在会话和请求中的数据。调试后,我可以看到新会话是随机创建的。如果我在 JSP 页面中添加<%@ page session="false" %>以确保不会创建新会话,会有什么影响吗?-
另外,我在 web.xml 中设置了 15 分钟的超时。通常,如果超过 15 分钟不活动,我的应用程序就会超时。但偶尔,它会在 1 或 2 分钟内超时。我不理解这种奇怪的行为。这是否与正在创建的新会话有关。当它超时时,我看到创建了一个具有不同会话 ID 的新会话。在我的代码中,我检测到超时如下,
if (request.getRequestedSessionId() != null && !request.isRequestedSessionIdValid()) { // redirect to a login page with a message }
【问题讨论】:
标签: java session servlets jstl