gpt4 book ai didi

java - 如何检查404是否只针对jsp页面

转载 作者:行者123 更新时间:2023-11-28 22:20:47 25 4
gpt4 key购买 nike

我正在研究 jsp/tomcat 中的错误处理。我的 web.xml 是这样的。

<servlet>
<description></description>
<display-name>ErrorServlet</display-name>
<servlet-name>ErrorServlet</servlet-name>
<servlet-class>
com.nsn.flexi.webtest.ErrorServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ErrorServlet</servlet-name>
<url-pattern>/ErrorServlet</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/ErrorServlet</location>
</error-page>

还有一些错误代码。如果状态为 404,我想将用户重定向到 Servlet 中的错误页面。

Integer statusCode = (Integer)
request.getAttribute("javax.servlet.error.status_code");
switch(statusCode){
case 403:
System.out.println("error 403 --");
break;
case 404:
System.out.println("error 404 ");
**//SEND REDIRECT**
break;
default:
System.out.println("default error");
}

我的问题是,如果在 jsp 中找不到某些 java 脚本,这段代码也会被执行。无论如何,只有当 JSP 或 Servlet 出现 404 错误时,我才能执行此代码。

最佳答案

你的 web.xml 应该是这样的

<error-page>
<error-code>404</error-code>
<location>/ErrorServlet?error=404</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/ErrorServlet?error=405</location>
</error-page>

这里是你通过参数传递的错误代码。

您可以通过 servlet 请求访问参数。您用于访问请求的代码应如下所示

Integer statusCode = (Integer) request.getAttribute("error")
switch(statusCode){
case 403:
System.out.println("error 403 --");
break;
case 404:
System.out.println("error 404 ");
**//SEND REDIRECT**
break;
default:
System.out.println("default error");
}

您将在 statusCode 变量中有错误代码,现在您可以轻松使用它。

谢谢

关于java - 如何检查404是否只针对jsp页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com