【问题标题】:How to read value of a input field in JSP form through a Servlet using id of that field? [duplicate]如何使用该字段的 id 通过 Servlet 读取 JSP 表单中输入字段的值? [复制]
【发布时间】:2015-11-29 05:08:40
【问题描述】:

我的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);
    }   
}

【问题讨论】:

  • 为字段命名,而不仅仅是 ID。

标签: java html jsp servlets


【解决方案1】:

您可以使用name 字段。这是正确的方法,可以使用request.getParameter()的方法。

【讨论】:

    【解决方案2】:

    向输入元素添加名称属性。 现在,您的 HTML 将如下所示,

    <form action="MyServlet" method="post">
    Fname:
    <input type="text" name="fname" placeholder="type first name" />
    <input type="submit" value="ok" />
    </form>
    

    这可以在您的 servlet/java 代码中的任何位置访问,

    String fName = request.getParameter("fname");

    据我所知,ID 属性不能用于在 java 中获取值。 JavaScript 可用于通过 ID 属性获取 innerText 或 innerHTML 的情况。

    【讨论】:

      【解决方案3】:

      您可以使用以下更新:

      在jsp/html中,添加属性name:

      <input type="text" id="fname" name="fname" placeholder="type first name"/>
      

      在 servlet 中:

      String fname = request.getParameter("fname");
      

      【讨论】:

        【解决方案4】:

        同时添加name="fname"

        <input type="text" name="fname" id="fname" placeholder="type first name"/>
        

        像这样检索它

        String fname = request.getParameter("fname");
        

        【讨论】:

          【解决方案5】:

          您已经得到了需要在输入文本字段中指定名称属性的答案

          <input type="text" name="fname" id="fname" placeholder="type first name"/>
          

          但是为什么您需要在输入文本字段中指定此名称属性,您可能仍然不清楚。

          我们使用表单元素上的输入文本来提交信息。 只有带有名称属性的输入标签才会提交给服务器。因此,如果不指定名称属性并执行request.getParameter("fname");,则根本不会在服务器端获得值。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-16
            • 2022-11-30
            • 1970-01-01
            • 2015-08-10
            • 1970-01-01
            • 2012-02-12
            • 1970-01-01
            相关资源
            最近更新 更多