[英]Transfer data from jsp to servlet
我試圖將數據從jsp表單發送到servlet,但是無法讀取通過servlet中的POST方法發送的數據。 這是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>
對於<input type="text">
您必須設置組件的名稱,如StackOverflow Servlets Wiki示例所示 :
<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代碼的情況,那么您應該尋找另一種方法來提取請求中發送的數據,該方法在此處說明: 如何使用JSP / Servlet將文件上載到服務器?
我認為您需要為要在servlet上訪問的所有輸入元素設置name
屬性:
<input name="post_text" type="text" size="30" maxlength="30"/>
現在就像@Luiggi提到的那樣,但我認為ID
屬性不是必需的, name
屬性是必需的。
我認為您不需要enctype="multipart/form-data"
並檢查web.xml文件中的映射。 它應該需要更改@Luiggi Mendoza提到的URL。 我們無法使用enctype="multipart/form-data"
發送vlaues。 在我的項目中,我曾嘗試過。但是在您的問題中,可以通過更改代碼來解決.....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.