我有一个html格式的文本字段。
<input type="text" name="uname">
在servlet类中捕获此文本字段的代码如下:
String userName = request.getParameter("uname");
我做了这样的事:
if(userName.equals("aj")){
}现在的问题是,如果在提交表单之前将uname文本字段保持为空白,则不会得到NullPointerException。
Oracle说:String getParameter(String name)
将请求参数的值作为字符串返回,如果参数不存在,则返回null。
请澄清我的困惑。
发布于 2014-06-11 12:03:01
参数存在,但其值为空字符串。所以你没有得到NullPointerException。要检查是否设置了值,最好使用以下方法:
if ((userName != null) && !userName.isEmpty())或(与Apache Commons):
if (StringUtils.isNotEmpty(userName))如果在您的代码中没有带有名称uname的输入,则不存在uname。如果删除这个输入,就会得到一个NullPointerException。
发布于 2014-06-11 12:06:23
该参数存在,因为它存在于您的窗体上。它只是空的,如果您想要查看某个内容是否已被填充,则必须检查该值。如果参数位于窗体上,则该参数本身将始终存在。
发布于 2014-06-11 12:07:31
将表单提交方法Post更改为Get,并查看此URL
它会喜欢
http://xxxx/x?uname=&otherparameters所以在这里,你的名字是空字符串,所以你没有得到NPE
https://stackoverflow.com/questions/24162441
复制相似问题