gpt4 book ai didi

java - Servlet JSP 异常/错误处理

转载 作者:行者123 更新时间:2023-11-30 08:24:41 25 4
gpt4 key购买 nike

我正在尝试使用 JSP 错误页面配置来处理异常。但是它失败了。请指出我哪里做错了。这不适用于任何实时应用程序,我正在尝试一个场景。

初始jsp页面:

page1.jsp

<body>
<form action="process.do" method="post">
<input type="Submit" />
</form>
</body>

web.xml

<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>com.examples.example.Servlet1</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/errorpage.jsp</location>
</error-page>
<error-page>
<exception-type>java.sql.SQLException</exception-type>
<location>/errorpage.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorpage.jsp</location>
</error-page>

Servlet1.java

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String s = null;
if (s.equals("")) {

}
} catch (Exception ex) {
throw new ServletException("my custom exception message");
}
}

errorpage.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" isErrorPage='true'%>
<html>
<head>
<title>Error Page</title>
</head>
<body>
<%
out.print("Error Message : ");
out.print(exception.getMessage());
%>
</body>
</html>

问题 - 我希望显示此错误页面。但是,我收到了 HTTP 500 错误,这是我在控制台日志中看到的:

SEVERE: Servlet.service() for servlet [servlet1] in context with path [/simpleServlet] threw exception [my custom exception message] with root cause
javax.servlet.ServletException: my custom exception message
at com.examples.example.Servlet1.doPost(Servlet1.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

最佳答案

这是我在下面博客链接的评论之一中找到的内容

使用“errorpage”“isErrorpage”并在 web.xml 文件中声明错误页面存在严重问题,它在 Internet Explorer 至少版本 6 和 7 中无法正确显示,而是显示它自己的 IE 错误页面对于页面 404 和内部服务器错误 500。更好的方法是使用 Spring 异常处理并为 Spring 的异常处理程序定义默认错误 View 。通过这种方式,您将在所有浏览器上获得一致的行为,因为错误页面不会被视为错误页面,而是被视为另一个 jsp 页面。我花了很多时间来找出 IE6 的这个错误,您可以节省宝贵的时间时间。还有另一种理论认为,如果错误页面的大小小于 512 字节,IE 和 chrome 将显示自己的错误页面。我已经对此进行了测试,但在我的情况下,即使大小超过 512 字节,它仍然显示“内部服务器错误 500”,唯一有效的解决方案是使用 Spring 异常处理

阅读更多:http://javarevisited.blogspot.com/2012/01/error-page-in-java-web-application.html#ixzz2xZ35ziPQ

关于java - Servlet JSP 异常/错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22768620/

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