html返回的Java httpservlet getparameter返回null

时间:2018-12-20 23:03:03

标签: java html servlets

我正在服务器上运行一个.jsp文件,并尝试将用户输入的表单数据发送到HttpServlet中的“ doPost”方法。

当我尝试在doPost中打印用户输入的值时,它们为null。

我正在尝试通过其html ID获取这些val,但是由于某些原因,它无法正常工作。 HTML中可能有一个简单的问题。

提交按钮似乎可以正常工作,因为它可以正确路由回我试图解析用户输入数据的.java文件。只有val为空。

这是我的代码。

谢谢! :)

youtube-dl -u "User" -p "Pass" -o "c:\Videos%(playlist_index)s - %(title)s.%(ext)s" --all-subs --external-downloader aria2c.exe https://learning.oreilly.com/videos/learning-path-designing/9781491957929

Status Legend:
(ERR):error occurred.

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page for details.

ERROR: aria2c exited with code 29

5 个答案:

答案 0 :(得分:2)

这些标签存在问题,例如:<input type="number" id="toencode">标签需要一个name属性,例如:name="mynumber"

servlet从JSP接收请求参数的名称-值对。在您的JSP中,name丢失了。编写JSP的正确方法是:<input type="number" id="toencode" name="mynumber">

在servlet程序中,按doPost方法访问发布的参数及其值:

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    String myNumber = request.getParameter("mynumber");
    getServletContext().log("# My Number: " + myNumber); // this prints in the log file
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("My Number: " + myNumber); // this prints on the browser page
}

这应该显示您在浏览器页面的JSP中输入的数字,例如:My Number: 999。您还可以参考服务器日志。

答案 1 :(得分:2)

将名称属性添加到您的输入中,如下所示:

<input type="number" name="toencode" id="toencode">
<input type="number" name="mask1" id="mask1">
<input type="number" name="mask2" id="mask2">

request.getParameter无法识别id属性。

答案 2 :(得分:1)

三个输入的类型应该是文本,而不是数字。试试吧。

答案 3 :(得分:1)

在三个表单输入字段中,使用name属性代替id或在ActiveSheet.UsedRange之外使用属性。请求中仅包含这些输入字段的值作为参数。

答案 4 :(得分:1)

您的表单似乎缺少所有字段的name属性。

尝试更改此内容:

<input type="number" id="toencode">

为此(将name属性添加到toencode字段中):

<input type="number" id="toencode" name="toencode">

显然,对于其他字段(mask1,mask2),name的值将与它们的id s匹配