0

セッションの申し込みで困っています。

index.jsp には単純なログイン フォームがあり、送信されると、セッションを作成して 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>

ログイン サーブレットは、セッションで値 User_ID を設定しています....

したがって、ユーザーが admin_home.jsp に直接アクセスしようとすると、index.jsp ページにリダイレクトする必要があります...私のコードの何が問題なのか....

4

2 に答える 2

1

このコードは、何かが応答にフラッシュされる前に実行する必要があり、リダイレクト後に命令を実行しないでください。

さらに、これはビュー ロジックではありません (したがって、JSP にはありません)。ユーザーの認証が必要なアプリケーションのすべての JSP およびサーブレットにこのコードを含めることは望ましくありません。したがって、このロジックをサーブレット フィルターに配置する必要があります。

最後に、セッションがまだない場合、次のコードは例外をスローします。セッションが null ではないことを確認するか、 を使用しないgetSession(false)getSession()ください。

session=request.getSession(false);
if(session.getAttribute("User_ID")==null)
于 2013-01-05T17:37:10.780 に答える
0
<%
    session=request.getSession(false);
    if(session.getAttribute("User_ID")==null)
    {
        response.sendRedirect("index.jsp");
    }

%> 

私のために働いたhtmlとheadセクションの間にそのコードを入れてください

于 2016-12-28T08:39:18.967 に答える