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

标签 java jsp tomcat servlets

我正在研究 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/

相关文章:

java - 特定 div 的页面抓取

Java 列表/集合性能

java - 输出与我的预期不同

javascript - 如何加快 Eclipse 和 JSP 中的 Javascript 开发速度?

java - 如何在不使用表单标签库的情况下访问 JSP 中的 Spring 3 MVC validator 结果

tomcat 在 eclipse 中找不到 index.jsp

linux - 删除 Tomcat 8

java - 解密断言的 Opensaml 断言签名验证失败

Java Web 应用程序内存处理

java - tomcat没有运行eclipse应用程序