【问题标题】:How to handle the Exceptions in JSP, when session expires?当会话过期时,如何处理 JSP 中的异常?
【发布时间】:2012-05-08 21:42:46
【问题描述】:

我正在开发 struts1.3.8。 JSP 页面包含用于在会话中迭代数据的脚本。一旦用户打开页面并且在会话到期之前不执行任何操作然后下次刷新它就会抛出java.lang.NullPointerException

那么如何处理该异常以及如何使会话处于活动状态?

【问题讨论】:

  • 这只是您的代码中的一个错误。你应该修复你的代码来处理对象是null的情况,而不是依赖它永远不会是null
  • 有时,当会话未过期时,会话属性在尝试访问时也会给出 null。但有时工作正常。会有什么问题???与会话???

标签: jsp session struts


【解决方案1】:

您可以依赖会话中存在的知名属性。

在首次创建会话时设置此项。

session.setAttribute("well-known-attribute", "abcd");

在您的 JSP 中,在进行任何迭代之前检查此属性是否存在。

if(session.getAttribute("well-known-attribute") != null) {
    // iterate others now
} else {
    session.setAttribute("well-known-attribute", "abcd");
    // now add the other attributes.
}

如果

,新会话将always be created
  • 目前还没有AND
  • 有一个相关的请求。

【讨论】:

  • 嗨 Adarshr,当当前刷新的页面抛出异常时,有没有办法将用户重定向到某个异常页面???
  • 您可以在web.xml 中声明错误页面。 <error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/error.jsp</location> </error-page>。但我建议处理它而不是仅仅重定向到某个错误页面。
  • 会话到期时,scriptlet 会抛出异常。在那种情况下,我认为将他重定向到某个错误页面是有道理的。它是否正确???
  • 我认为它现在可以工作。更好的选择是在您发现well-known-attributenull 时将他发送到主页。尝试使用 gmail 或 facebook 等网站。登录,让它打开几个小时,然后回来刷新。您将转到主页/登录页面,而不是看到错误页面。
  • 感谢您的建议。所以我必须在会话到期后将用户重定向到登录页面????有什么方法可以使会话保持活跃,请参阅 gmail,即使您使其空闲数小时和数小时,也不会重定向到登录页面...
猜你喜欢
  • 2014-10-22
  • 1970-01-01
  • 2011-03-22
  • 2016-05-23
  • 2018-04-29
  • 1970-01-01
  • 2016-12-23
  • 2013-05-03
  • 2012-10-16
相关资源
最近更新 更多