2015-06-11 2 views
0

Я новичок в servlets-`null` результат из запроса в сервлетах

Я заполняю текст в форме, но значение в запросе является нуль-

В логине 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

В Ди splayPage-

<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

Теперь в моем результирующем значении uname и upass является null и, следовательно, booleanb является false .Weird!

Мой вопрос Если IS-объект запроса создается, когда мы используем anchor tag, поскольку нет NPE на вызове getParameter() на request объекта, так, какой тип данных, связанных с этим request object.why это предусмотрено для нас?

ответ

1

Потому что вы not submitting ваш form на сервер или не пропустите 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 объекта. Поэтому, когда мы отправляем форму, каждое поле ввода отправляется, а затем извлекается из объекта запроса на стороне сервера.

+0

но анкерный тэг создает объект запроса, такой как форма отправки –

+0

Да, это не будет содержать ваши значения текстового поля. –

+0

означает, что объект запроса, обработанный 'anchor tag', создает объект' request', но не имеет значений для текста, мой вопрос заключается в том, какие данные мы можем передать им без 'rewriting url' –

Смежные вопросы