日期:2014-05-18  浏览次数:20761 次

[虚心请教:] tomcat下一个简单的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是可以捕捉到异常信息的。