質問

私はセッションスコープに格納されている「役割」は、リクエストパラメータ「accessRole」

と一致しない場合、ユーザはlogin.jspをにリダイレクトされるようにしたいです

HomePage.jsp

<jsp:include page="Header.jsp">
<jsp:param value="d" name="accessRole" />
</jsp:include>

Header.jsp

<c:if test="${sessionScope.role!=param.accessRole}">
<c:redirect url="Login.jsp"/> 
</c:if>
予想通り

上記のコードは、リダイレクトを行わない。

私は(ExternalContextのリダイレクトを使用してみました)とのjsp:の代わりに転送する。しかし、何も動作

役に立ちましたか?

解決

あなたはJSPの内部でリダイレクトすることはできませんが、それは既に手遅れが多いですが、含まれています。あなたがアプリケーションサーバーのログを読んだことがある場合は、(親ページのコンテンツは、既に応答に送られているという理由だけで)IllegalStateException: response already committedを見ている必要があります。

このための真の解決策は、親ページをカバーFilterにマッピングされているurl-patternを実装することです。

他のヒント

JSPは、のリダイレクトを送信することを許可されていません含まれています。あなたが使用する必要があります:

<jsp:include.directive file="url"/>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top