当我通过 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}。
谢谢。
当我通过 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}。
谢谢。
只需检查它是否在回发时转发给自己(这意味着存在错误)。您可以通过检查javax.servlet.forward.request_uri
请求属性(表示最终用户在浏览器地址栏中看到的请求 URI)是否不以/j_security_check
while 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>