Pregunta

Quiero que el usuario sea redirigido a login.jsp si el "papel" almacenado en el ámbito de sesión no coincide con el parámetro de petición "accessRole"

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>

El código anterior no realiza la redirección como se esperaba.

He intentado utilizar redirección de ExternalContext () y jsp: forward en lugar de ., Pero nada funciona

¿Fue útil?

Solución

No se puede redirigir el interior de un JSP incluyen, a menudo es demasiado tarde. Si ha leído los registros de servidor de aplicaciones, usted debe haber visto un IllegalStateException: response already committed (sólo porque el contenido de la página principal ya está sido enviado a la respuesta).

La verdadera solución para esto es poner en práctica un Filter que es mapeado en el url-pattern que cubre la página principal.

Otros consejos

JSP incluye no están permitidos para enviar una redirección. Vas a tener que utilizar:

<jsp:include.directive file="url"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top