-1
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {

       out.println("<html>");

       out.println("<head></head>");
       out.println("<body>");
       String err[]=(String[]) request.getAttribute("error");

       *

字符串的错误数组是从下一页发送并在这一页中接收的。但是,如果我尝试在此位置使用与下面给出的相同代码放置 for 循环,那么即使我可以的表单字段也不会显示不明白为什么我使用 Netbeans Ide 并且 servlet 的名称是:-form,addLeague nad success

*

       out.println("<form action=addLeague method=post>");
       out.println("name:  <input type='text' name='name'>");
       out.println("Season: <input type='text' name='season'>");
       out.println("year <input type='text' name='year'>");
       out.println("submit:<input type='submit' value='save'>");
       out.println("</form>");
        for(int i=0;i<=3;i++)
       {
           if(err[i]!=null)
               out.println("<h1>"+err[i]+"</h1>");
       }
       out.println("</body>");
       out.println("</html>");



    } 

    catch(Exception e)
    {

    }


    finally {            
        out.close();
    }
}
4

1 回答 1

0

这可能会更好,但请注意,捕捉Exception几乎肯定会给您带来比其价值更大的痛苦。您应该只捕获实际发生的异常。

如果你得到,例如NullPointerExceptionor ArrayIndexOutOfBoundsException,那么添加一些代码来保持它的形式发生。在您的情况下,这意味着将i<=3to更改i <= err.length为后者。

如果需要捕获某些条件,捕获特定的异常,例如,NumberFormatException或者ParseException是需要捕获的常见异常。然后,您可以为解析的输出提供一些默认值(例如,0 表示数字)或向用户显示错误消息。

try {
   out.println("<html>");
   out.println("<head></head>");
   out.println("<body>");

   String err[]=(String[]) request.getAttribute("error");
   try {
       for(int i=0;i<=3;i++) {
           if(err[i]!=null)
               out.println("<h1>"+err[i]+"</h1>");
       }
   } catch (Exception e) { // This is a bad idea. Use a specific exception.
        e.printStackTrace();
   }

   out.println("<form action=addLeague method=post>");
   out.println("name:  <input type='text' name='name'>");
   out.println("Season: <input type='text' name='season'>");
   out.println("year <input type='text' name='year'>");
   out.println("submit:<input type='submit' value='save'>");
   out.println("</form>");
   out.println("</body>");
   out.println("</html>");
} catch(Exception e) { // Its a bad idea down here too
    e.printStackTrace();
} finally {            
    out.close();
}
于 2013-07-29T21:14:11.757 回答