3

当我通过 web.xml (Tomcat) 中的 FORM 指定安全登录系统时,如果身份验证不成功,有没有办法通过使用 EL 的通知 form-error-page jsp 捕获错误或异常?

我问这个是因为我想使用在 form-login-page 中指定的相同 JSP 表单作为 form-error-page jsp,因此 JSTL Core c:if 对于通过以下方式捕获最终异常很有用${not empty pageContext.exception}。

谢谢。

4

1 回答 1

5

只需检查它是否在回发时转发给自己(这意味着存在错误)。您可以通过检查javax.servlet.forward.request_uri请求属性(表示最终用户在浏览器地址栏中看到的请求 URI)是否不以/j_security_checkwhile HttpServletRequest#getMethod()equals to结尾来检查POST

<c:if test="${pageContext.request.method == 'POST' && fn:endsWith(requestScope['javax.servlet.forward.request_uri'], '/j_security_check')}">
    <span class="error">Unknown login, please try again.</span>
</c:if>
于 2013-01-04T19:26:21.670 回答