我正在服务器上运行一个.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
答案 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匹配