[英]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.