Что возвращает request.getParameter?

//index.jsp

<form method="post" action="backend.jsp">
<input type="text" name="one" />
<input type="submit value="Submit" />
</form>

В backend.jsp, что делает request.getParameter( "один" ); вернуться?

request.getParameter("one").getClass().getName();

возвращает java.lang.String, поэтому он должен быть строковым справа?

Однако я не могу сделать

String one = request.getParameter("one");
if (!"".equals(one)) {}

или

if (one != null) {}

Это очевидно, потому что переменная one не возвращает null. Является

if (one.length() > 0) {}

только путь, или есть лучшие решения или лучший подход? Я рассматриваю оба решения как jsp. Использование сервлета (хотя jsp является сервлетом) - это другой вариант использования в этом сценарии.

Ответы

Ответ 1

В Javadoc:

Возвращает значение параметра запроса как String или null, если параметр не существует.

Обратите внимание, что можно отправить пустой параметр - такой, что параметр существует, но не имеет значения. Например, я мог бы включить &log=&somethingElse в URL-адрес, чтобы включить ведение журнала, без необходимости указывать &log=true. В этом случае значением будет пустая строка ("").

Ответ 2

String onevalue;   
if(request.getParameterMap().containsKey("one")!=false) 
{
onevalue=request.getParameter("one").toString();
}

Ответ 3

Оба if (one.length() > 0) {} и if (!"".equals(one)) {} будут проверять пустой параметр foo, а пустой параметр - это то, что вы получите, если форма отправлена ​​без значения в текстовом поле foo.

Если у вас есть возможность использовать язык выражения для обработки параметра, вы можете войдите в него с выражением empty param.foo.

<c:if test='${not empty param.foo}'>
    This page code gets rendered.
</c:if>