直接问题举例,从表单获取2个值如
String u=request.getParameter("uname");
String p=request.getParameter("upass");
首先可以明确,接收不是空值是完全OK的。打印下u和p的长度。
System.out.println("u的长度==="+u.length());
System.out.println("p的长度==="+p.length());
if(u.length()!=0&&p.length()!=0){
/*
    .......省略代码......    */}
从页面页面不论是否输入uname和upass的值,结构都是只能在后台打印出第一条打印语句的结果 即u的长度
如,我在页面输入 uname的值为a, upass的值也为a
后台输出结果如下:u的长度===1页面报错:java.lang.NullPointerException
错误行提示是 if(u.length()!=0&&p.length()!=0){
*****************但是if条件中只有一个判断就可以通过if(p.length()!=0)..这是为什么 ,要怎么改,谢谢!!!

解决方案 »

  1.   

    再补充一条如果什么都不输入,直接提交表单打印出来的结果 如下:System.out.println("u的值==="+u);后台显示:u的值===这种结果能表示为空吗?或者是其他。不解!
      

  2.   

    u的值===   --->   u = ""
      

  3.   

    既然NullPointer了你就加上就好
    if(u=!null && p!=null &&u.length()!=0&&p.length()!=0)
      

  4.   

    .....我知道了~~~~~~~~~2楼一语惊醒梦中人啊~~~~~~~原来。。因为我写的项目表单内容过于庞大。。结果是copy上一处的代码结果少了个“无语~~~~。。分分都给你~~~~~~~~~~~~~~~