2017-02-08 5 views
2

У меня есть следующие страницы в JSP:JSP request.getParameter

<%String a= request.getParameter("Test"); 
    System.out.println(a);%> 

    <form > 
    <input type="text" name="Test" value= "Whatever" > 
    </form> 

Если я начинаю, он показывает мне на консул «нуль» почему? Извините за этот самый простой вопрос!

+0

И вы отправили форму? –

+0

Да, форма ist показана с «независимо» – user7535663

+0

Это замечательно! Но вы представили форму? Есть ли параметр запроса в вашем текущем URL? Потому что должно быть, если вы отправили форму. У вашей формы нет кнопки отправки, но я предполагаю, что нет. Добавьте '? Test = something' и нажмите enter ... –

ответ

1

Я думаю, что вы должны сделать как последуйте код:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
    <%String a= request.getParameter("Test"); 
    System.out.println(a);%> 
    <form action="#"> 
    <input type="text" name="Test" value= "Whatever" > 
    <input type="submit" value="submit"> 
    </form> 
</body> 
</html> 

При нажатии кнопки отправить консоль будет печатать Whatever.But при первом посещении страницы, консоль печатается в нуль

+0

Спасибо, что сработало. – user7535663

+0

приветствуются – lpgad

1

Вы должны иметь этот код распространяется в двух разных JSPs:

Первый JSP:

<form > 
    <input type="text" name="Test" value= "Whatever" > 
</form> 

Затем нужно отправить форму с помощью браузера. В вашем сервлета обработчика doPost, вы должны послать вторую JSP, который будет иметь следующий код:

<%String a= request.getParameter("Test"); 
    System.out.println(a);%> 

Update:

Как один из коллег рецензентов нотами, вы всегда можете использовать один и тот же JSP до и после подачи формы. В этом случае первый будет по-прежнему печатать нуль, а второй будет печатать желаемый результат. Ключ состоит в том, что форма должна быть отправлена ​​для того, чтобы параметры формы были заполнены в контексте запроса автоматически.

+0

Он мог довольно легко отправить обратно в тот же JSP после отправки. –

+0

@AlanHay. Абсолютно. Но первая компиляция JSP все равно будет печатать нуль. Как только он отправит первый, а во второй раз компиляция увидит запрос «тест». Ключ в том, что форма должна быть представлена. – VHS

2

Если я начну, это покажет мне на консуле «нуль» почему?

Все остальные ответили, как поступать правильно. Позвольте мне сказать, почему он делает то, что делает. Поскольку в запросе ничего нет, и все просто просто GET-запрос, поэтому ничего не решает и возвращает в ответ null.

Вы, вероятно, может попытаться вызвать эту страницу как:

http://whatever.com:PORT_IF_ANY/CONTEXT?Test=Whatever

Вы увидите вашу страницу печати Whatever вместо нулевой. Итак, длинный рассказ короткий, так как ваш запрос не имеет параметра с именем Test, он оценивается как null, и вы печатаете это null.