if(newusername.equals("")|| newusername == null || newpassword.equals("")  || newpassword == null || passwordagain.equals("") || passwordagain ==null )
把判断是否为NULL和判断是否空串倒过来。
你的程序有空指针错误,肯定是对null进行了句柄操作。

解决方案 »

  1.   

    这段代码应该没什么问题!
    问题可能是上一页的text框的name与这一页的(request.getParameter("name"))不一致
      

  2.   

    你要做的是当那些变量不存在或为空的时候就执行里面的代码,产生错误的原因是:当变量本身为null时,它就不能执行equals()方法,可以这样改一下:
    if(newusername != null && newusername.equals("")|| newusername == null || newpassword != null && newpassword.equals("")  || newpassword == null || passwordagain !=null && passwordagain.equals("") || passwordagain ==null ){
       //任意一必填项未填写,显示错误信息,并返回注册页面
    }
    或者
    if(!(newusername != null && !newusername.equals("") && newpassword != null && !newpassword.equals("") && passwordagain !=null && !passwordagain.equals("")) ){
       //任意一必填项未填写,显示错误信息,并返回注册页面
    }
    或者,你应该还有else语句吧,那就直接这样
    if( newusername != null && !newusername.equals("") && newpassword != null && !newpassword.equals("") && passwordagain !=null && !passwordagain.equals("") ){
       //都填写了得语句
    }
    else {
      //任意一必填项未填写,显示错误信息,并返回注册页面
    }
      

  3.   

    如果newusername=null ;
    if(newusername.equals("")|| newusername == null)这样写是不对的。

    if(newusername!=null && !newusername.equals(""))
    使用关系"与"的"短路"原则。
      

  4.   

    试试:如果使用&和|,则程序可能忽略下一个条件,比如你用&,当第一个条件就是false时,就不判后一个了.
    用&&和||两个都判的.