jsp会话重定向

jsp会话重定向,jsp,Jsp,我在申请课程时遇到了麻烦 jsp有一个简单的登录表单,当它被提交到一个创建会话的servlet并重定向到admin_home.jsp页面时,这里一切正常 但我希望,当用户直接想要转到admin_home.jsp时,他将重定向到index.jsp页面。问题是: admin_home.jsp <body> <% session=request.getSession(false); if(session.getAttribute("User_ID")==null)

我在申请课程时遇到了麻烦

jsp有一个简单的登录表单,当它被提交到一个创建会话的servlet并重定向到admin_home.jsp页面时,这里一切正常

但我希望,当用户直接想要转到admin_home.jsp时,他将重定向到index.jsp页面。问题是:

admin_home.jsp

<body>

<%
    session=request.getSession(false);
    if(session.getAttribute("User_ID")==null)
    {
        response.sendRedirect("index.jsp");
    }

%>
    <jsp:include page="header.jsp"></jsp:include>

    <div>
    <div id="left">
             <div id="photo">
                <img alt="" src="images/users_image/<%out.println(session.getAttribute("User_ID").toString().concat(".jpg"));%>" />

            </div>

        </div>
    </div>
</body>

" />
登录servlet正在会话中设置值User_ID

所以当用户试图直接访问admin_home.jsp时,他应该重定向到index.jsp页面。。。
我的代码中有什么错误…

应该在将任何内容刷新到响应之前执行此代码,并且在重定向之后不应该执行任何指令

此外,这不是视图逻辑(因此它不应该在JSP中),并且您真的不希望在应用程序中需要验证用户的每个JSP和servlet中都包含此代码

最后,如果还没有会话,下面的代码将抛出异常。请检查会话是否为null,或者不要使用
getSession(false)
,而是
getSession()



将代码放在html和对我有效的head部分之间

是否有任何错误;或者仅仅是re direct没有发生?我得到的是nullpointerexception“/>感谢您的回复…但我仍然有相同的问题,我这次做的是,我将scriplet放在页面的最开头,并将getSession(false)更改为getSession(),但我仍然得到异常…是的,因为如果重定向,您不应该执行页面的其余部分。要么重定向,要么执行页面,但不能两者都执行。在if中添加else子句,并将页面的其余部分放在else块中。
session=request.getSession(false);
if(session.getAttribute("User_ID")==null)
<%
    session=request.getSession(false);
    if(session.getAttribute("User_ID")==null)
    {
        response.sendRedirect("index.jsp");
    }

%>