我的JSP
包含此form
标记:
<form action="MyServlet" method="post">
Fname:<input type="text" id="fname" placeholder="type first name"/>
<input type="submit" value="ok"/>
</form>
我的servlet
是:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cad.database.DatabaseClass;
import com.cad.example.service.InputService;
public class Input extends HttpServlet {
private static final long serialVersionUID = 1L;
public Input() {
super();
// TODO Auto-generated constructor stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fname = request.getParameterById("fname");
System.out.println("My name "+fname);
}
}
答案 0 :(得分:4)
为input元素添加name属性。 现在,您的HTML看起来像,
VM
这可以在servlet / java代码中的任何地方访问,
<form action="MyServlet" method="post">
Fname:
<input type="text" name="fname" placeholder="type first name" />
<input type="submit" value="ok" />
</form>
据我所知,ID属性不能用于获取java中的值。可以在情况下使用JavaScript来使用ID属性获取innerText或innerHTML。
答案 1 :(得分:2)
您可以使用name
字段。这是正确的方法,可以使用方法request.getParameter()
。
答案 2 :(得分:2)
您可以使用以下更新:
在jsp / html中,添加属性name
:
<input type="text" id="fname" name="fname" placeholder="type first name"/>
在servlet中:
String fname = request.getParameter("fname");
答案 3 :(得分:1)
同时将name="fname"
添加到
<input type="text" name="fname" id="fname" placeholder="type first name"/>
像这样检索
String fname = request.getParameter("fname");
答案 4 :(得分:1)
您已经得到了答案,您需要在输入文本字段中指定名称属性
<input type="text" name="fname" id="fname" placeholder="type first name"/>
但是为什么你需要在输入文本字段中指定这个名称属性,这可能仍然不清楚。
我们使用表单元素上的输入文本来提交信息。 仅将具有name属性的输入标记提交给服务器。因此,如果不指定name属性并执行request.getParameter("fname");
,则根本不会获得服务器端的值。