【问题标题】:How to handle Null pointer Exception in JSP at session.getattribute() , when session becomes invalid?当会话无效时,如何在 session.getattribute() 处处理 JSP 中的空指针异常?
【发布时间】:2017-07-28 17:18:05
【问题描述】:

在 servlet 中是: <% session.setAttribute("customer",user1); %>

其中 user1 是用户对象

在我的jsp中是:

User user1 = (User)session.getAttribute("customer");

在html正文中

<h1> welcome.... <%= user1.getUserNm(); %> </h1>

问题是: 当我清除浏览历史记录/会话变得无效/用户 obj 变为空时, 上面一行有空指针异常 我试过了:

<%
    if(session.getAttribute("customer")==null){
        response.sendRedirect("login.jsp?msg=You are not logged in..!");
    }
 %>

我尝试重定向到登录页面,但它没有发生,只是它给出了相同的错误。 即使我尝试将 user.getusrnm() 与 null 进行比较,但它不起作用。

【问题讨论】:

  • 不要。在控制器方法中编写所有这些逻辑,并仅使用 JSP 来格式化数据对象。
  • 没找到你。请解释清楚
  • 在显示用户名之前检查 null
  • 我试过了,但是没用...stackoverflow.com/users/7403180/sforsujit...
  • 使用 rd.include(request, response);在 response.sendRedirect("login.jsp?msg=你没有登录..!");其中 rd 是 requestDispatcher

标签: java html jsp jsp-tags


【解决方案1】:

您可以使用httpRequest.getSession(false),如果会话无效则返回null,如果会话有效,则返回活动httpSession 对象。

然后你可以检查返回的会话对象是否不是null,你应该可以从会话对象中获取用户对象,而不需要任何空指针。

【讨论】:

  • 无论我在页面顶部检查什么,控制都将转到该点

    Welcome....

    并在此处显示空指针异常。此时我需要处理异常吗?
  • 在对有效会话使用任何会话数据检查之前,请不要添加脚本。如果没有任何活动会话做重定向的东西
猜你喜欢
  • 1970-01-01
  • 2021-11-08
  • 2016-09-11
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多