0

我的 index.jsp 上有一个脚本,脚本应该做的是从“session.getAttribute”获取信息并显示在 div 上,但即使没有用户登录,index.jsp 仍应运行

这是脚本

<div class="templatemo_content_left_section">
40:  <h1>Bem Vindo</h1>

40:  <%= session.getAttribute("currentSessionUser")%>
41:   <%if (session.getAttribute("currentSessionUser").equals("")){%>
42: <a href="Login.jsp"><b>Login</b></a>
43:<%}
44: else{%>
45:<a href="logout.jsp"><b>Logout</b></a>
46:<%
47:}
48:%>

我得到的日志显示错误“消息在第 43 行处理 JSP 页面/Index.jsp 时发生异常”

4

1 回答 1

0

session.getAttribute()如果属性不存在,则返回 null。这是明确记录的。所以很明显,如果你调用equals()结果,你会得到一个 NUllPointerException。将结果与 null 进行比较:

 <%if (session.getAttribute("currentSessionUser") == null)

或者更好的是,使用 JSP EL 和 JSTL。应避免使用 Scriptlet:

<c:choose>
    <c:when test="${empty sessionScope.currentSessionUser}">
        <a href="Login.jsp"><b>Login</b></a>
    </c:when>
    <c:otherwise> 
        <a href="logout.jsp"><b>Logout</b></a>
    </c:otherwise>
</c:choose>
于 2013-02-15T23:28:17.673 回答