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