Java Servlet请求.getParameter()返回null

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&

我已经阅读了所有关于这方面的问题,但我仍然没有任何进展。我想将输入字段中的值传递给servlet,但servlet的request.getParameter返回null,而不是输入的值。这是我的HTML:

<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>");
}