Java Servlet请求.getParameter()返回null
我已经阅读了所有关于这方面的问题,但我仍然没有任何进展。我想将输入字段中的值传递给servlet,但servlet的request.getParameter返回null,而不是输入的值。这是我的HTML:Java Servlet请求.getParameter()返回null,java,servlets,getparameter,Java,Servlets,Getparameter,我已经阅读了所有关于这方面的问题,但我仍然没有任何进展。我想将输入字段中的值传递给servlet,但servlet的request.getParameter返回null,而不是输入的值。这是我的HTML: <form method="post" action="MyHttpServletDemo" id="myForm"> <input type="text" id="input&
<form method="post" action="MyHttpServletDemo" id="myForm">
<input type="text" id="input" name="input1" placeholder=" Input coordinates...">
</form>
<a href="welcome"><button type="button" id="vnes" onclick="Vnes()">Search</button></a>
这是我的.xml文件:
<servlet>
<servlet-name>MyHttpServletDemo</servlet-name>
<servlet-class>MyServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyHttpServletDemo</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
MyHttpServletDemo
MyServletDemo
MyHttpServletDemo
/欢迎光临
和Servlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String value = (String) request.getParameter("input1");
out.println("<h1>" + value + "</h1>");
}
public void doGet(HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException、IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
字符串值=(字符串)请求.getParameter(“input1”);
out.println(“+value+”);
}
我试过这个:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
PrintWriter out = response.getWriter();
String value = (String) request.getParameter("input1");
out.println("<h1>" + value + "</h1>");
}
public void doPost(HttpServletRequest请求、HttpServletResponse响应)引发IOException{
PrintWriter out=response.getWriter();
字符串值=(字符串)请求.getParameter(“input1”);
out.println(“+value+”);
}
HTML:
但仍然不起作用。它起作用了!以下是解决方案: HTML:
搜寻
.xml文件:
<servlet>
<servlet-name>MyHttpServletDemo</servlet-name>
<servlet-class>MyServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyHttpServletDemo</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
MyHttpServletDemo
MyServletDemo
MyHttpServletDemo
/欢迎光临
Servlet:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String value = (String) request.getParameter("pole1");
out.println("<h1>" + value + "</h1>");
}
public void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
字符串值=(字符串)request.getParameter(“pole1”);
out.println(“+value+”);
}
您的表单有method=“post”
,但您已经实现了doGet
。那是事故吗?你是如何提交这份表格的?在输入文本字段中输入?@ernest_k我试图将其更改为doPost,但也不起作用。我通过点击按钮提交它,它可以工作,但是它总是返回空值。你的按钮在表单之外。因此,您可以使用一些JS魔术来处理表单。那么,您实际上是如何将表单发送到后端的呢?@M.Deinum我已经在表单中添加了按钮,并尝试使用myForm=document.getElementById(“myForm”);myForm.submit();它不起作用。您的表单未提交到/welcome
,因此它不会去任何地方。还有为什么javascript只是用按钮发布表单,而不是用javascript隐藏表单。因此,抛开javascript,在表单中放置一个简单的按钮,将操作更改为/welcome
,并实现doPost
,而不是doGet
@ArvindKumarAvinash,它与method=“post”不起作用这个动作作为一种价值受到欢迎。Programmer2B-我明白了……我甚至没有注意到你在动作中犯了一个错误。祝你好运为了避免这些问题,我使用注释而不是web.xml
。
<servlet>
<servlet-name>MyHttpServletDemo</servlet-name>
<servlet-class>MyServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyHttpServletDemo</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String value = (String) request.getParameter("pole1");
out.println("<h1>" + value + "</h1>");
}