2012-10-30 20 views
1

我用的PrintWriter做到這一點代碼:錯誤的,當使用的PrintWriter寫入新的HTML

 response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      /* TODO output your page here. You may use following sample code. */ 
      out.println("<html>"); 
      out.println("<head>"); 
      out.println("<title>Update Page</title>"); 
      out.println("</head>"); 

      out.println("<body>"); 
      out.println("<center>"); 
      out.println("<h1>Please choose ID</h1>"); 
      out.println("</center>"); 
      out.println("<table width='359' border='1' align='center'>"); 
      out.println("<tr>"); 
      out.println("<td width='103'>ID:</td>"); 
      out.println("<th width='246'>"); 
      out.println("<select name='ID' id='ID' style='width:170px;' >"); 
      out.println("<option></option>"); 
      out.println("</select>"); 
      out.println("</th>"); 
      out.println("</tr>"); 
      out.println("<tr>"); 
      out.println("<td>Name:</td>"); 
      out.println("<th><input type='text' name='Name' id='Name' style='width:170px;' /></th>"); 
      out.println("</tr>"); 
      out.println("<tr>"); 
      out.println("<td>Address:</td>"); 
      out.println("<th><input type='text' name='Address' id='Address' style='width:170px;'/></th>"); 
      out.println("</tr>"); 
      out.println("<td>Email:</td>"); 
      out.println("<th><input type='text' name='Email' id='Email' style='width:170px;'/></th>"); 
      out.println("</tr>"); 
      out.println("<tr>"); 
      out.println("<td>Phone Number:</td>"); 
      out.println("<th><input type='text' name='Phone' id='Phone' style='width:170px;'/></th>"); 
      out.println("</tr>"); 
      out.println("<tr>"); 
      out.println("<td></td>"); 
      //================= 
      out.println("<td>"); 
      out.println("<div>");   
      out.println("<input type='submit' name='FillValue' value='Fill ID' style='float:left'/>"); 

      out.println("<form action='UpdateServlet' method='post'>"); 
      out.println("<input type='submid' name='Submid' value='Submit' style='float:right'/>"); 
      out.println("</form>"); 
      out.println("</div>"); 
      out.println("</td>"); 
      out.println("</tr>"); 
      //============== 
      out.println("</table>"); 
      out.println("</body>"); 
      out.println("</html>"); 
     } finally { 
      out.close(); 
     } 

可是,我錯了,當我點擊Submid按鈕,結果是:

HTTP狀態404 -/DungDV01852_Lab1_2_3/UpdateServlet

類型狀態報告

消息/ DungDV01852_Lab1_2_3/UpdateServlet

description請求的資源(/ DungDV01852_Lab1_2_3/UpdateServlet)不可用。 Apache Tomcat/6.0.29

我有類updateServlet。 另:我有HTML:

  <td> 
       <div> 
        <form action="FillServlet" method="post"> 
     <input type="submit" name="FillValue" value="Fill ID" style="float:left"/> 
        </form> 
    <input type="submit" name="Submid" id="Submid" value="Submit"style="float:right"/> 
       </div> 
      </td> 

它剛好運行,但同樣的,當我使用的PrintWriter寫一個新的HTML是錯誤的。請幫幫我。謝謝大家

+4

不要這樣做。爲您的Java代碼使用Servlet,爲此使用JSP/JSF /其他模板或HTML代。 http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files –

+1

在你的第一種情況下,輸入類型是「submid」...我相信它是一個錯字。 –

+0

我必須使用PrintWriter來執行此代碼。這是我的作業:(。謝謝,但我不能使用JSP/JSF /其他 – famfamfam

回答

1

您問題中的代碼不會導致404錯誤。將會發生404,因爲您的代碼通過調用response.sendError(...)明確設置了404響應,或者因爲請求從未將它首次提交給您的servlet。後者最可能的原因是您的web.xml文件沒有正確配置和映射您的servlet。

如果您需要更多幫助,請將整個web.xml文件添加到問題中。

+0

我解決了問題,當我在HTML中使用Form來表示「Action = someServlet「,它將在Web.xml中創建,但是當我使用printWriter寫一個新的HTML時使用其他形式。所以這個表單和這個對其他servlet的操作是禁用的(不是創建)。我配置我的Web.xml,以便我的應用程序完全運行:D。非常感謝你 – famfamfam

相關問題