2013-06-27 161 views
0

我從jsp表單向servlet發送數據,但不能讀取通過servlet中的POST方法發送的數據。 這是servlet代碼將數據從jsp傳輸到servlet

public class TUhServlet extends HttpServlet { 
public void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 



     String s= req.getParameter("post_text"); 
     System.out.println(s); 
     resp.sendRedirect("/tuh.jsp"); 
    } 
} 

這是tuh.jsp

<form class="post_form" action="./" 
       method="post" enctype="multipart/form-data"> 
      0"/><br/> 
      Message : <input name="post_text" type="text" size="30" maxlength="30"/> 
      <p><input type="submit" value="Post!"/></p> 
      <input type="hidden" name="type" value="post"/> 
     </form> 

的web.xml

<servlet> 
     <servlet-name>TUh</servlet-name> 
     <servlet-class>tuh.TUhServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>TUh</servlet-name> 
     <url-pattern>/tuh</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>tuh.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

你的值(tuh.TUBlrServlet)與你的servlet名稱(TUhServlet)不匹配,表單聲明中的action屬性看起來不對。 – mauretto

+0

我只是編輯它,我發佈郵件之前改名字 – user2528061

+0

在你的動作表單屬性中使用「tuh」而不是「./」 – mauretto

回答

3

對於<input type="text">你必須設置組件的名稱形式顯示在StackOverflow Servlets wiki example

<input id="post_text" name="post_text" type="text" size="30" maxlength="30"/> 

對於所有組件,請執行相同的操作,例如hidden字段。

您還有其他問題,你在你的代碼貼在表格:

  • 在一個簡單的形式,你不能有一個enctype="multipart/form-data"在你正在處理上傳文件至少(這不是示例中所示)。如果代碼只是將文本數據從客戶端發送到服務器,請將其刪除。
  • <form>中的action屬性不會將信息發送到servlet的正確URL映射。您應該將其更改爲/thu

最後,您<form>應該像

<form class="post_form" action="thu" method="post"> 
    <!-- contents... --> 
</form> 

如果你正在處理一個文件上傳,但沒有張貼在這裏所有的JSP代碼,那麼你應該尋找另一種方法來提取數據在發送請求解釋在這裏:How to upload files to server using JSP/Servlet?

+0

我認爲name屬性是必需的,而不是ID – Abubakkar

0

我認爲你需要設置name屬性爲要在servlet的訪問的所有輸入元素:

<input name="post_text" type="text" size="30" maxlength="30"/> 

現在作爲@Luiggi提到,但我認爲ID屬性不是必需的,name屬性是必需的。

+0

是的,但我已經使用neme屬性! – user2528061

0

我想你不需要enctype="multipart/form-data"並檢查你的web.xml文件中的映射。它應該需要改變@Luiggi門多薩提到的網址。我們不能使用enctype="multipart/form-data"發送價值。在我的項目中我已經嘗試過了。但是在你的問題中可以通過更改這些代碼來解決.....