当前位置: 首页 > 知识库问答 >
问题:

Servlet中的处理异常和错误页面

卢永寿
2023-03-14

通过使用浏览器,当抛出错误时,我被正确地重定向到web.xml文件中指定的自定义错误页面

但是为什么我总是在curl的输出中看到默认的400错误页面及其跟踪?我缺少处理的异常类型(我使用的是java.lang.exception)或其他?

这是servlet的代码:

package test.company.com;

import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.Exception;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {
  // stuff here ..

} catch (Throwable e) {
    // Log and throw the superclass Exception 
    LOGGER.log(Level.SEVERE, e.getMessage());
    throw new ServletException();
} 

}

这是 web.xml 配置文件:

<error-page>  
  <exception-type>javax.servlet.ServletException</exception-type>  
    <location>/error.jsp</location>  
  </error-page>
  <error-page>
  <exception-type>java.lang.Exception</exception-type>  
    <location>/error.jsp</location>  
  </error-page>
  <error-page>
    <error-code>400</error-code>
    <location>/error.jsp</location>
  </error-page> 
  <error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
  </error-page> 
  <error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
  </error-page>

共有2个答案

钱展
2023-03-14
匿名用户

通过在Tomcat 9的< code>server.xml中设置< code>ErrorReportValve配置类解决,现在错误堆栈跟踪不再可用:-)

https://imgs.xnip.cn/cj/n/65/d40c01e4-1c57-49c8-ae76-e8cfaf3d3919.png" width="100%" height="100%" />

古棋
2023-03-14

请在此处查看前两个答案:哪些字符使URL无效?-您正在发送

所以,替换

 类似资料:
  • 您需要修复网页抛出的异常和在JavaScript中调试错误。 如果你能得到页面异常和JavaScript错误的细节,在实际工作中非常有用 。当页面抛出异常或脚本产生错误时,Console(控制台)面板会提供明确的可靠信息,以帮助您找到并解决问题。 在Console(控制台)面板中,您可以跟踪异常及跟踪导致异常的执行路径,显式地或隐式地捕获它们(或忽略它们),甚至可以设置错误处理程序来自动收集和处理

  • 当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。 您必须在 web.xml 中使用 error-page 元素来指定对特定异常 或 HTTP 状态码 作出相应的 Servlet 调用。 web.xml 配置 假设,有一个 ErrorHandler 的 Servlet 在任何已定义的异常或错误出现时

  • FAQs in section [17]: [17.1] try / catch / throw 通过哪些方法来改善软件质量? [17.2] 如何处理构造函数的失败? [17.3] 如何处理析构函数的失败? [17.4] 如果构造函数会抛出异常,我该怎样处理资源? [17.5] 当别人抛出异常时,我如何改变字符数组的字符串长度来防止内存泄漏? 17.1 try / catch / throw 通过

  • 本文向大家介绍浅谈PHP中的错误处理和异常处理,包括了浅谈PHP中的错误处理和异常处理的使用技巧和注意事项,需要的朋友参考一下 错误处理:          1. 语法错误     2. 运行时的错误     3. 逻辑错误   错误报告:                  错误E_ERROR         警告E_WARNING         注意E_NOTICE 开发阶段:开发时输出所有的

  • 我正在做我的一项任务。这相当直截了当。包含单个输入的HTML表单被提交到Servlet,Servlet获取参数,基于参数创建消息,将消息作为属性添加到请求,并使用requestdispatcher转发到jsp以显示消息。 我有一个要求,如果参数丢失,我需要显示一个错误页面。问题是我不能显式地检查null,也不能使用try/catch块。我的猜测是,目标是在web中定义错误页面。xml页面来处理特定

  • 当程序出现错误或者异常时,我们一般会希望在开发时输出报错信息,在生产环境时隐藏详细的信息。 在 imi 中,提供了 Http 服务的错误异常默认处理器支持。 默认 Http 错误处理器:Imi\Server\Http\Error\JsonErrorHandler 指定默认处理器 配置文件中: return [ 'beans' => [ 'HttpErrorHan