日期:2014-05-16  浏览次数:20503 次

jsp中errhandler抛出异常在errorPage中如何捕获?
点击右边红色标题查看本文完整版:jsp中errhandler抛出异常在errorPage中如何捕获?

jsp中errhandler抛出异常在errorPage中如何捕获?

在做一个小测试,就是两个页面,第一个页面抛出错误,由第二个页面来捕捉.

但是提交后,第二个页面捕获不到错误(或者说我不知道该如何正确的去捕捉) ? 各位帮忙看一下:

// 第一个页面 errhandler.jsp

<%@page errorPage= "errorPage.jsp "%> //这句不是文档里的,是看有些网友的做法加的
<html>
<body>
<form action= "errorPage.jsp " method=post>
<HR> JUST FOR CATCHING THE ERROR ! <hr>
<p>
JAVA: <input type= "checkbox " name=languages value= "JAVA "> <BR>
C++ : <input type= "checkbox " name=languages value= "C++ "> <BR>
<input type=submit value= "Submit ">
</form>
<%
if (request.getMethod().equals( "post ")){
if(request.getParameter( "languages ").equals( "JAVA "))
{
out.println( " <hr> <font color=red> YOU GOT THAT RIGHT! </color> ");
}
else
{
throw new Exception( "YOU GOT IT WRONG! ");
}
}
%>
</body>
</html>





//第二个页面 errorPage.jsp //这句不是文档里的,是看有些网友的做法加的


<%@ page isErrorPage= "true "%>

<html>
<body>
<!-- <%=exception%> 如果这样写,页面显示:null -->
<%=exception.getMessage()%>
<body>
</html>

------解决方法--------------------
1. <form action= "errorPage.jsp " method=post> 这里action不应该是errorPage.jsp
 而应该是errhandler.jsp。
2.if (request.getMethod().equals( "post ")){}把这个去掉就可以成功。我不太清楚你用这个
 句子的用意在哪,是想判断传递方法是'post'还是'get'吗?

------解决方法--------------------
理论上这样errorPage是可以捕捉到异常信息的。