request.getParameter 返回什么?

2022-09-01 20:20:30

索引.jsp

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

在后端.jsp request.getParameter(“one”)返回?

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

返回 java.lang.String,所以它必须是 String 对吧?

但是我不能做

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

if (one != null) {}

这是显而易见的,因为变量 1 不返回 null。是

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

只有路要走,还是有更好的解决方案或更好的方法?我认为这两种解决方案都在jsp上。在这种情况下,使用 servlet(尽管 jsp 是一个 servlet)是一个不同的用例。


答案 1

根据 Javadoc

将请求参数的值作为 String 返回,如果参数不存在,则返回 null。

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


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