Java 如何检查是否有servlet的执行是无异常的

Java 如何检查是否有servlet的执行是无异常的,java,servlets,Java,Servlets,您好,我对Java servlet相当陌生。我想确保服务器端代码的执行是无异常的,也就是说,我想检查服务器代码上是否抛出了任何异常。如何使用我得到的响应来确定这一点 感谢您如果您从servlet获取内容,那么这里没有未处理的异常。如果您想获取已处理异常的信息,请将它们记录在catch子句中。使用log4j捕获您的异常(使用try-catch块),但如果这是您正在处理的某种作业,那么这可能是您可以基于http返回代码进行检查的一种方法。您可以使用jquery。下面是404错误的示例代码。 此外,页

您好,我对Java servlet相当陌生。我想确保服务器端代码的执行是无异常的,也就是说,我想检查服务器代码上是否抛出了任何异常。如何使用我得到的响应来确定这一点


感谢您

如果您从servlet获取内容,那么这里没有未处理的异常。如果您想获取已处理异常的信息,请将它们记录在
catch
子句中。

使用log4j捕获您的异常(使用try-catch块),但如果这是您正在处理的某种作业,那么这可能是您可以基于http返回代码进行检查的一种方法。您可以使用jquery。下面是404错误的示例代码。 此外,页面还包含所有http错误代码及其含义

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
   $(function() {
      var urlPath = "some_url";
      $.ajax(urlPath,
      {
         statusCode: {
         404: function() {
            alert('page not found');
         }
      }
   });   
});
</script>

$(函数(){
var urlPath=“some_url”;
$.ajax(urlPath,
{
状态代码:{
404:函数(){
警报(“未找到页面”);
}
}
});   
});

因为Servlet执行服务器端,所以服务器端代码决定客户端是否应该知道异常。除非异常没有被处理(在servlet代码中),并且没有为web应用程序设置错误页面(这两个页面都不推荐),否则客户端不会自动知道它

理想情况下,永远不要让客户机知道确切的
异常。相反,客户端应该只收到一条正确的错误消息,说明当前请求无法成功处理的原因

错误详细信息应在需要了解的基础上共享。例如,如果输入验证失败,则在错误消息中包含无效字段的名称是有意义的。相反,显示
NumberFormatException
是不合适的(比如,因为客户输入的年龄不是数字)

编辑:
这里没有一种正确的方法。根据web应用程序对客户端错误的描述程度,可以采用多种方法

如果您只需要让客户端知道发生了一个带有简短错误描述的错误,您可以使用
sendError()
(在后台会自动将HTTP状态头设置为错误代码,如下面的400 Bad Request)

其他方法包括在
web.xml
中为不同的错误代码或异常配置
。容器将负责自动转发到下面配置的
.jsp
文件

<error-page>
  <error-code>404</error-code>
  <location>/error404.jsp</location>
</error-page>

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

404
/error404.jsp
java.lang.Exception
/errorPage.jsp
JSP需要将其
iErrorPage
属性设置为
true
,以接收隐式
异常
对象,以获取有关异常的更多信息。例如,
exception.getMessage()
可以用于(在某些情况下)生成要显示给用户的错误消息

客户端 客户端无需执行任何特殊操作(如getError())即可接收错误。客户端仍将接收由浏览器呈现的HTML,就像请求成功一样,但由于请求没有成功,客户端将接收格式为HTML的错误消息(甚至可以
view>source
it)


发送的HTML取决于您是否使用了
sendError()
(这将从您的web服务器(如Tomcat)发送标准错误响应)或者您自己配置的
JSP,在这种情况下,您可以完全控制HTML错误模板。

如何检查我的客户机代码是否存在任何异常?那么,我应该如何通知客户机servlet出了问题?我是否应该在响应中设置一个标题,指出出现了问题,并且在客户端检查该标题?这是正确的方法吗?谢谢ravi。还有一个问题…如何检查客户端的错误?没有getError()方法..还有其他方法吗?谢谢,400美元。您可以使用任何一种似乎适合您需要的
HttpServletResponse.SC.*
代码。检查我的“客户端”更新。
<error-page>
  <error-code>404</error-code>
  <location>/error404.jsp</location>
</error-page>

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