JSPからのリダイレクト:ページが含まれます
-
20-09-2019 - |
質問
私はセッションスコープに格納されている「役割」は、リクエストパラメータ「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"/>
所属していません StackOverflow