又是NullPointerException异常,请指点

lengfeng06 2007-08-16 02:28:18
<%
String UserName="";String UserText="";
UserName=request.getParameter("name");
UserText=request.getParameter("text");
if(UserName.length()!=0 && UserText.length()!=0)
{}
%>
上面是程序中一段代码,发生空指针异常NullPointerException
我删了if(UserName.length()!=0 && UserText.length()!=0){}或是删了UserName=request.getParameter("name");
UserText=request.getParameter("text");
都不发生异常了,为什么会发生这种情况?请指点
...全文
203 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
homepgdn 2007-08-16
  • 打赏
  • 举报
回复
UserName=request.getParameter("name");
UserText=request.getParameter("text");
你没有name或text的参数吗?
或改为
if(UserName!=null&&UserName.length()!=0 &&UserText!=null&& UserText.length()!=0)
{}

lengfeng06 2007-08-16
  • 打赏
  • 举报
回复
谢谢,但我不明白maijunsheng() 所说的“在URL后面加入name和text请求参数”是怎样加,可否举个例子?
lindeqiang 2007-08-16
  • 打赏
  • 举报
回复
<%
String UserName="";String UserText="";
UserName=request.getParameter("name");
UserText=request.getParameter("text");
if(UserName.length()!=0 && UserText.length()!=0)
{}
%>
改成
if(UserName!=null&&UserName.length()!=0 &&UserText!=null&& UserText.length()!=0)
{}
就没有事情啦,因为你的UserName是空的,所以调用length()方法就有错误了
SBtoSB 2007-08-16
  • 打赏
  • 举报
回复
直接
if(UserName==null && UserText==null)不就得了
zhao0p 2007-08-16
  • 打赏
  • 举报
回复
<%
String UserName="";String UserText="";
UserName=request.getParameter("name");
UserText=request.getParameter("text");
if(UserName.length()!=0 && UserText.length()!=0)
{}
%>
这个问题因为“空值是没有任何属性的”
试问下如果一个空值能否点出属性呢?
在if判断时先执行的是UserName.length(),然后进行判断,所以出现空指针可能。
解决办法:
if(null!=UserName&&UserName.length()!=0 && null!=UserText&&UserText.length()!=0)
{}

lengfeng06 2007-08-16
  • 打赏
  • 举报
回复
问题已经解决,是我没有提交表单的情况下直接执行String name=request.getParameter();因此出现空指针异常,我加个if判断就解决了,谢谢各位!!
maijunsheng 2007-08-16
  • 打赏
  • 举报
回复
你在URL后面加入name和text请求参数就不会了

因为UserName=request.getParameter("name");
UserText=request.getParameter("text");
当你没有这两个请求参数的话userName,UserText就会变为null,也就是无实例对象,从而你调用if(UserName.length()!=0 && UserText.length()!=0){}它就会抛出异常,

而当你删除UserName=request.getParameter("name");
UserText=request.getParameter("text");
因为你前面有String UserName="";String UserText="";也就是实例化了二个空字符串,所以你再调用if(UserName.length()!=0 && UserText.length()!=0){}就不会抛出异常

Ghost_520 2007-08-16
  • 打赏
  • 举报
回复
你从哪跳转到这个 jsp 或者是 servlet 中时,如果是用 js 跳转的话就使用:
location.href="目标地址?name=XXX&text=XXX"; 就可以

如果你是用表单的 submit 按钮来进行跳转的话,那就是你的表单里的文本组件名称不是 "name" 或 "text",所以取不到值;

你检查一下,看一下是出现了以下的哪种问题!如果还是不行的话,将你的问题说的明白些,好吗?

81,116

社区成员

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

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