java - `null` servlet 中请求的结果

标签 java jsp servlets

我是 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>

enter image description here

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>

enter image description here

现在,我的 unameupass 的结果值为 null,因此 boolean bfalse。奇怪!

我的问题是-如果我们使用 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/

相关文章:

java - 网络分析期间 Cytoscape 错误 - java.lang.Exception?

java - Android - AndEngine "No Longer Touched"方法?

java - 在运行时使用反射将文件添加到类路径的危险

java - 如何将产品ID从产品目录发送到java类?

java - 在同一服务器中的两个 Web 应用程序之间传递对象

java - 拆分从 servlet 中的文本区域获取的 2 个句子

java - 需要使用枚举

java - 从前一个 Controller 重定向时未调用 Post 方法

java - 如何在 JSP 中打印绝对 URL 列表

java - 无法打开 Html 页面,请下载文件