JSP的一个runtime异常

deadcode 2004-05-07 09:40:53
String name=request.getParameter("txtName"); //the visitor typed name
String pwd=request.getParameter("txtPwd"); //the visitor typed password

if(name.equals("")){
out.print("<script language=\"javascript\">alert(\"请输入用户名!\")</script>");
}
else
if(pwd..equals("")){
out.print("<script language=\"javascript\">alert(\"请输入密码!\")</script>");
}
经过验证if条件判断时会产生一个java.lang.NullPointerException的异常,但不知道这是为什么呢?
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawnwang 2004-05-10
  • 打赏
  • 举报
回复
if(name.equals("")||name==null)
{}
else if(pwd.equals("")||pwd==null)
{}
以上写法是错的,因为如果name是null的话,在进行.equals()操作时,还是会报nullpointer exception的,应该是这样写
if(name==null||name.equals(""))
{}
else if(pwd==null||pwd.equals(""))
{}
编译器一旦检测到第一个条件满足时,就不会进行后续判断了,也就不会进行.equals()操作
galewithwing 2004-05-08
  • 打赏
  • 举报
回复
不错
如果没有输入,你得到的参数就是 null,
因此要判断是否 null,
判断是否“”是不可靠的
dragonlw 2004-05-07
  • 打赏
  • 举报
回复
if(name.equals("")||name==null)
{}
else if(pwd.equals("")||pwd==null)
{}
dawnwang 2004-05-07
  • 打赏
  • 举报
回复
这是因为你在用request.getParameter时取出的值是null,对于null值,你是不能进行.equals操作的,所以你应该检查你的前一个页面,肯定是那里的txtname或txtpwd没传过来

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧