我是 servlet 新手 -
我正在表单中填写文本,但请求中的值为空-
In login page-
<body>
<form action="">
<input type="text" name="uname">
<input type="text" name="pwd">
<a href="display.jsp">link</a>
</form>
</body>
In DisplayPage-
<body>
Display:
<%
String uname=(String)request.getParameter("uname");
String upass=(String)request.getParameter("pwd");
out.println(uname+" - "+upass);
Enumeration<String> enumeration = request.getParameterNames();
boolean b=enumeration.hasMoreElements();
out.println(b);
while (enumeration.hasMoreElements()) {
String name = (String) enumeration.nextElement();
String data=(String)request.getParameter(name);
out.println(name+" - "+data);
}
%>
</body>
现在,我的 uname
和 upass
的结果值为 null
,因此 boolean
b
是 false
。奇怪!
我的问题是-如果我们使用 anchor 标记
时创建请求对象,因为调用getParameter(时没有
在 NPE
)request
对象上,那么这个 request
对象附加了什么类型的数据。为什么要向我们提供这个?
最佳答案
因为您没有向服务器提交
您的表单
,或者没有传递网址中的任何值
,而是单击链接,这将将其重定向到您的链接。
<body>
<form action="display.jsp"> // added action
<input type="text" name="uname">
<input type="text" name="pwd">
<button type="submit">Link</button> // added submit button
</form>
</body>
更新问题
在服务器端,每个请求都作为 HttpServletRequest
对象进行处理。因此,当我们提交表单时,每个输入字段都会被提交,然后从服务器端的请求对象中检索它。
关于java - `null` servlet 中请求的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30778764/