[英]How can I get the html data inside a Java servlet?
美好的一天!
如何訪問servlet中的HTML文本字段值? 我的示例代碼如下:
out.println("<html><head></head>");
out.println("<body>");
out.println("Item not found...");
out.println("<h2>Add Item:</h2>");
out.println("<form action = \"AddandSearch\">");
out.println("Item Name: <input type =\"text\" name =\"name\"> <br>");
out.println("Unit Price: <input type =\"text\" name =\"unitPrice\"> <br>");
out.println("On Stock : <input type =\"text\" name =\"stock\"> <br><br>");
out.println("<input type =\"submit\" value =\"Add Item\">");
out.println("</form>");
out.println("</body>");
out.println("</html>");
用戶按下按鈕后,我需要獲取名稱,單價和股票的值,這樣我才能將其放入arraylist中。 是否可以在同一servlet上分配它? 我嘗試使用此代碼:
String id = request.getParameter("name");
但是它不起作用,因為必須首先按下該按鈕。 我可以使用getter和setter方法或任何等效方法嗎? 我需要一個用於輸入數據的文本字段,並且它必須在servlet內部完成。 結果還必須在相同的servlet內生成。 謝謝。
我嘗試使用此代碼:
String id = request.getParameter("name");
但是它不起作用,因為必須首先按下該按鈕。
您確實需要使用getParameter(...)
。 但是我懷疑您嘗試使用創建表單HTML ...的相同doGet(...)
方法執行此操作,然后再將包含該HTML的響應發送給用戶。
需要發生的是:
從doGet(...)
返回。
等待用戶單擊提交按鈕。
doGet(...)
方法上獲得新的調用。 AddandSearch
請求...例如通過查看請求URI getParameter("name")
以獲取參數。 假設您的Servlet現在正在處理來自不同形式的請求,則doGet方法需要分派到代碼的不同部分(例如,不同的方法)以處理每種形式的類型。
(我們在這里和其他地方也提到過,將HTML嵌入代碼中並不是一種好的工程實踐。最好使用JSP + JSTL或其他模板技術。
但是,如果這是您的講師告訴您進行此練習的步驟,請順其自然。 他可能有一個很好的理由……就像沒有時間學習課程中的JSP,JSTL和其他“高級” Java EE一樣。 課程擁擠可能是一個嚴重的問題。)
String id = (request.getParameter("name")==null)?"nothing here":request.getParameter("name");
您是否在AddandSearch處理servlet的doGet()方法中進行處理? 您可能應該使用method =“ post”(因為該操作稱為“ add”,從而提供了持久性的提示),並在doPost()方法中對其進行了處理。
它不起作用,因為必須先按下按鈕
我想您只是在這里回答了自己的問題。
在doGet方法中,您可以使用此語法獲取值,
String title = request.getParameter("title");
您的表單提交按鈕應有一個名稱。
out.println("<html><head></head>");
out.println("<body>");
out.println("Item not found...");
out.println("<h2>Add Item:</h2>");
out.println("<form action = \"AddandSearch\">");
out.println("Item Name: <input type =\"text\" name =\"name\"> <br>");
out.println("Unit Price: <input type =\"text\" name =\"unitPrice\"> <br>");
out.println("On Stock : <input type =\"text\" name =\"stock\"> <br><br>");
out.println("<input type =\"submit\" name=\"submit\" value =\"Add Item\">");
out.println("</form>");
out.println("</body>");
out.println("</html>");
當您按下Submit按鈕時,將重定向到相同的servlet,
if(request.getParameter("submit")!=null)
{
//your code to handle form submission
}
else
{
out.println("<html><head></head>");
out.println("<body>");
out.println("Item not found...");
out.println("<h2>Add Item:</h2>");
out.println("<form action = \"AddandSearch\">");
out.println("Item Name: <input type =\"text\" name =\"name\"> <br>");
out.println("Unit Price: <input type =\"text\" name =\"unitPrice\"> <br>");
out.println("On Stock : <input type =\"text\" name =\"stock\"> <br><br>");
out.println("<input type =\"submit\" name=\"submit\" value =\"Add Item\">");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.