当会话过期时,如何处理JSP中的异常?

当会话过期时,如何处理JSP中的异常?,jsp,session,struts,Jsp,Session,Struts,我正在研究struts1.3.8。JSP页面包含用于在会话中迭代数据的scriptlet。一旦用户打开页面,在会话到期之前不执行任何操作,然后下一次刷新时将抛出java.lang.NullPointerException 因此,如何处理该异常以及如何使会话处于活动状态?您可以依赖于会话中是否存在已知的属性 在首次创建会话时设置此选项 session.setAttribute("well-known-attribute", "abcd"); 在JSP中,在进行任何迭代之前,检查该属性是否存在 i

我正在研究struts1.3.8。JSP页面包含用于在会话中迭代数据的scriptlet。一旦用户打开页面,在会话到期之前不执行任何操作,然后下一次刷新时将抛出
java.lang.NullPointerException


因此,如何处理该异常以及如何使会话处于活动状态?

您可以依赖于会话中是否存在已知的属性

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

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.
}
如果需要,将举行新的会议

  • 还没有一个
  • 有一个关联的请求

这只是代码中的一个bug。您应该修复代码,以处理对象为
null
的情况,而不是依赖它永远不为
null
。有时会话未过期时,会话属性在尝试访问时也会给出null。但有时效果很好。有什么问题吗???使用session???Hi Adarshr,当当前刷新的页面引发异常时,是否有方法将用户重定向到某个异常页面???您可以在
web.xml
中声明错误页面
java.lang.NullPointerException/error.jsp
。但我建议处理它,而不仅仅是重定向到某个错误页面。当会话过期时,scriptlet将抛出异常。在这种情况下,我认为将他重定向到某个错误页面是有意义的。。对吗???我想现在可以用了。更好的选择是,只要您发现
众所周知的属性
null
,就将他发送到主页。尝试使用gmail或facebook等网站。登录,让它打开几个小时,然后回来刷新。您将转到主页/登录页面,而不会看到错误页面。感谢您的建议。所以,一旦会话过期,我必须将用户重定向到登录页面????有没有办法使会话处于活动状态,请看gmail,即使你让它闲置数小时,也不会重定向到登录页面。。。