日期:2014-05-16 浏览次数:20590 次
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是可以捕捉到异常信息的。