request.getParameter返回什么?

时间:2011-12-08 02:13:44

标签: java jsp

// index.jsp

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

在backend.jsp中request.getParameter(“one”)是什么;返回?

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

返回java.lang.String,所以它必须是一个String吗?

但是我做不到

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

if (one != null) {}

这很明显,因为变量不会返回null。是

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

唯一可行的方法,还是有更好的解决方案或更好的方法?我正在考虑将这两个解决方案都放在jsp上。在这种情况下,使用servlet(尽管jsp是一个servlet)是一个不同的用例。

3 个答案:

答案 0 :(得分:36)

根据Javadoc

  

以String形式返回请求参数的值,如果是,则返回null   参数不存在。

请注意,可以提交一个空参数 - 这样参数就存在,但没有值。例如,我可以在URL中包含&log=&somethingElse以启用日志记录,而无需指定&log=true。在这种情况下,该值将为空字符串("")。

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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>