SendRedirect()不工作,JSP抛出空指针异常[重复]

zfycwa2u  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(163)

此问题在此处已有答案

response.sendRedirect not working(4个答案)
How can I avoid Java code in JSP files, using JSP 2?(31个答案)
Authentication filter and servlet for login(1个答案)
三个月前关门了。
请帮助我是什么阻止我的程序运行/...我已经检索了UserBean类型的user_details,同时,我想将我当前的JSP文件重定向到login.jsp,如果它是空的...但我认为它不工作...它仍然试图检索值,即使我检索的对象是空的...请帮助我的原因...我在这里停留了2天。
Jsp部分,我在其中给出了重定向逻辑:

<%
UserBean user = (UserBean) session.getAttribute("user_details");
if (user == null) {
response.sendRedirect("login.jsp");
    System.out.println(request.getContextPath());}
%>

要在其中检索用户对象值的JSP部分:(仅当用户不为空时才需要值

<tr>
                            <td>Name</td>
                            <td><%=user.getName()%></td>
                        </tr>
                        <tr>
                            <td>About</td>
                            <td><%=user.getAbout() %></td>
                        </tr>
                        <tr>
                            <td>Email</td>
                            <td><%=user.getEmail() %></td>
                        </tr>
                        <tr>
                            <td>Gender</td>
                            <td><%=user.getGender() %></td>
                        </tr>

抛出异常:

java.lang.NullPointerException: Cannot invoke "com.blog.model.UserBean.getId()" because "user" is null
nukf8bse

nukf8bse1#

这是我通常做的当我需要得到当前的用户数据。如果没有用户在会话中我调用一个重定向到登录窗体。
我在一个jsp标记中声明usebeans,这样它就声明了自己,值由浏览器填充。

<jsp:useBean id="user" scope="session" class="com.mypackage.myuserclass"/>
<%
if(user == null){
        response.sendRedirect("/login/");
        response.flushBuffer();
}else{

/**
*All your logic to do when there is a valid user.
*/

}

如果有帮助,请告诉我。

相关问题