问题描述
一个简单的用户管理系统,输入用户名和密码后,出现了如下问题:u=wanglip=123java.lang.NullPointerExceptionatcom.model.UserBeanCL.usercheck(UserBeanCL.java:121)atcom.control.loginCLservLet.doGet(loginCLservLet.java:36)atcom.control.loginCLservLet.doPost(loginCLservLet.java:64)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:637)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:717)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)atjava.lang.Thread.run(Thread.java:619)其中loginCLservelet.java类如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//接受用户名和密码Stringu=request.getParameter("username");u=newString(u.getBytes("ISO-8859-1"),"gb2312");Stringp=request.getParameter("passwd");//System.out.print("这一个模型的例子");System.out.print("u="+u+"p="+p);//定义一个类,调用UserBeanCLl类方法UserBeanCLubc=newUserBeanCL();//验证信息if(ubc.usercheck(u,p)){System.out.println("这一个模型的例子");request.getRequestDispatcher("WL.jsp").forward(request,response);}else{request.getRequestDispatcher("login.jsp").forward(request,response);}请哪位高人指点一下
解决方案
解决方案二:
System.out.print("u="+u+"p="+p);已经执行里了,后报出ava.lang.NullPointerException而一般报java.lang.NullPointerException的原因有以下几种:1字符串变量未初始化;2接口类型的对象没有用具体的类初始化,比如:Listlt;会报错Listlt=newArrayList();则不会报错了3当一个对象的值为空时,你没有判断为空的情况。UserBeanCLubc=newUserBeanCL();应该判断下ubc是否创建成功
解决方案三:
LZ你debug下看看那个值是空就行了·
解决方案四:
这我知道,就是不知道哪出错了,请问,怎么调试大一点的项目?
解决方案五:
usercheck(UserBeanCL.java:121)这个方法里面的内容没问题吗??????
解决方案六:
toptoptop
解决方案七:
我检查项目的时候是将每一步的值都打印在后台,那个没有值就看出来了。
解决方案八:
引用3楼yelaigudu的回复:
这我知道,就是不知道哪出错了,请问,怎么调试大一点的项目?
debug模式启动服务,在代码中设一断点,再运行一步步往下走就行了
解决方案九:
引用4楼liaoxiankai的回复:
usercheck(UserBeanCL.java:121)这个方法里面的内容没问题吗??????
确定吗?
解决方案十:
我按楼上的朋友改写了,出现了另外的问题,就是,我输入姓名和密码后,点击提交后,它自动弹出了一个调试图,不知为什么?