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

在servlet中处理异常

管炳
2023-03-14

我正在做我的一项任务。这相当直截了当。包含单个输入的HTML表单被提交到Servlet,Servlet获取参数,基于参数创建消息,将消息作为属性添加到请求,并使用requestdispatcher转发到jsp以显示消息。

我有一个要求,如果参数丢失,我需要显示一个错误页面。问题是我不能显式地检查null,也不能使用try/catch块。我的猜测是,目标是在web中定义错误页面。xml页面来处理特定类型的错误,但问题是,如果我无法检查请求参数是否为null,或者使用try/catch,我如何知道是否需要抛出异常?有什么想法吗?

共有3个答案

司空鸿熙
2023-03-14

通常要检查空,你会做:

       String param = request.getParameter("param");
       if(param!=null)

如果他们不希望您这样做,他们可能希望您使用点运算符来导致NullPointerExpection

public void doGet(HttpServletRequest request, HttpServletResponse  response) throws IOException, ServletException, NullPointerException
{
       String param = request.getParameter("param");
       if(param.equals("x"))
       {
          //if param was null, simply using 
          //the DOT operator on param would throw
          // the NullPointerExpection
          response.sendRedirect("x.jsp");
          return;
       }
    }

要避免显式检查null并避免NullPointerExpection,可以执行以下操作:

 if("x".equals(param))
宓茂才
2023-03-14

web中。xml,您也可以提到异常。

<error-page>  
  <exception-type>java.lang.Exception</exception-type>  
  <location>/error.jsp</location>  
</error-page>  

或者您可以从这个链接获取帮助,创建新的servlet来处理错误。Servlet异常处理

殷功
2023-03-14

如果您打算基于参数创建一条消息,那么如果您不能检查参数值(例如null),那么就很难看到如何实现这一点。大概你打电话给。。。

equest.get参数

如果缺少参数,则返回参数值或null。

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

  • 通过使用浏览器,当抛出错误时,我被正确地重定向到web.xml文件中指定的自定义错误页面 但是为什么我总是在curl的输出中看到默认的400错误页面及其跟踪?我缺少处理的异常类型(我使用的是java.lang.exception)或其他? 这是servlet的代码: 这是 web.xml 配置文件:

  • 本文向大家介绍详解Servlet 3.0/3.1 中的异步处理,包括了详解Servlet 3.0/3.1 中的异步处理的使用技巧和注意事项,需要的朋友参考一下 在Servlet 3.0之前,Servlet采用Thread-Per-Request的方式处理请求,即每一次Http请求都由某一个线程从头到尾负责处理。如果一个请求需要进行IO操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将

  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 我有一个Servlet,它接收请求,必须处理5个任务(从外部服务器获取数据),并将所有数据发送回客户机。

  • Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。Java Servlet 显然支持 HTTP Cookie。 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie。例如:姓名、年龄或识别号码等。 浏览器将这些信息存储在本地计算机上,以备将来使用。 当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cookie 信息发送到服务器,服务器将使用这些信