request.getParameter返回什么?

// index.jsp

在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)是一个不同的用例。

根据Javadoc :

以Stringforms返回请求参数的值,如果参数不存在,则返回null。

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

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

if (one.length() > 0) {}if (!"".equals(one)) {}将检查空的foo参数,如果表单是空的,那么你将得到一个空参数在foo文本字段中没有提交任何值。

如果您有可能使用表达式语言来处理参数,则可以在表达式中使用empty param.foo访问它。

  This page code gets rendered.