Java 当会话变得无效时,如何在session.getattribute()处理JSP中的空指针异常?

Java 当会话变得无效时,如何在session.getattribute()处理JSP中的空指针异常?,java,html,jsp,jsp-tags,Java,Html,Jsp,Jsp Tags,在servlet中,它是: 其中user1是用户对象 在我的jsp中,它是: User user1 = (User)session.getAttribute("customer"); 在html正文中 <h1> welcome.... <%= user1.getUserNm(); %> </h1> 欢迎。。。。 问题是: 当我清除浏览历史记录/会话变为无效/用户obj变为空时, 上一行有空指针异常 我试过: <% if(session.g

在servlet中,它是:

其中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进行比较,但它不起作用。

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


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

不要。在控制器方法中编写所有这些逻辑,并仅使用JSP格式化数据对象。请解释清楚在显示用户名之前检查空值我试过了,但不起作用。。。使用rd.include(请求、响应);在response.sendRedirect(“login.jsp?msg=您未登录…”)之后;当rd是RequestDispatcher时,无论我在页面顶部检查什么,控件都会到达那个一点欢迎。。。。此时显示空指针异常。此时是否需要处理异常?不,请在使用有效会话的任何会话数据检查之前添加scriptlet。如果没有任何活动会话,请执行重定向操作