servlet中的请求产生`null`结果

时间:2015-06-11 10:52:11

标签: java jsp servlets

我是servlets中的新手 -

我正在填写表单中的文本,但请求中的值为null -

  

在登录页面 -

<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

  

在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

现在我的结果值unameupassnull,因此boolean bfalse。很奇怪!

我的问题是如果我们使用anchor tag时创建了请求对象,因为在NPE对象上调用getParameter()时没有request ,那么这个request对象附带了什么样的数据。为什么提供给我们?

1 个答案:

答案 0 :(得分:1)

由于您not submittingform到服务器或未通过any value in url,而是您点击链接,该链接会将其重定向到您的链接。

<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对象处理。因此,当我们提交表单时,会提交每个输入字段,然后从服务器端的请求对象中检索它。