首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JSP连接SQL,代码没有出现异常,但连接返回空指令,实在找不出原因了!

2012-01-16 
JSP连接SQL,代码没有出现错误,但连接返回空指令,实在找不出原因了!!这里是java代码:publicbooleancheckAdm

JSP连接SQL,代码没有出现错误,但连接返回空指令,实在找不出原因了!!
这里是java代码:

public   boolean   checkAdmin(String   username,   String   password)//检查管理员的登录名和密码是否正确
throws   UserException   {
//创建一个变量用于判断结果
boolean   isAdmin   =   false;
//查询admin表的SQL语句
String   selectSql   =   "SELECT   *   FROM   admin   WHERE   username=?   AND   password=? ";
PreparedStatement   pmst   =   null;
try{
//创建一个数据库连接对象
ConnectDB   conn   =   new   ConnectDB();
//执行查询语句
pmst   =   conn.getConnection().prepareStatement(selectSql);
//1代表查询语句中的?号,username为形参
pmst.setString(1,   username);
//1代表查询语句中的?号,username为形参
pmst.setString(2,   password);
//pmst.executeQuery();
ResultSet   rst   =   pmst.executeQuery();
//判断结果是否为空,如否,说明用户名和密码是正确的
if(rst.next()){
isAdmin   =   true;
}

这里JSP的检测页面的代码:
   
  <%@   page   language= "java "   import= "java.util.*,userJSP.* "   pageEncoding= "gbk "%>
<%
String   path   =   request.getContextPath();
String   basePath   =   request.getScheme()+ ":// "+request.getServerName()+ ": "+request.getServerPort()+path+ "/ ";
%>

<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN ">
<html>
    <head>
        <base   href= " <%=basePath%> ">
       
        <title> My   JSP   'cklogin.jsp '   starting   page </title>
        <link   rel= "stylesheet "   href= "images/css.css "   type= "text/css "   media= "screen ">
<meta   http-equiv= "pragma "   content= "no-cache ">
<meta   http-equiv= "cache-control "   content= "no-cache ">
<meta   http-equiv= "expires "   content= "0 ">        
<meta   http-equiv= "keywords "   content= "keyword1,keyword2,keyword3 ">
<meta   http-equiv= "description "   content= "This   is   my   page ">
<!--
<link   rel= "stylesheet "   type= "text/css "   href= "styles.css ">
-->

    </head>
   
    <body>
<%
String   userName   =   request.getParameter( "username ");
String   passWord   =   request.getParameter( "password ");

if(userName==null   ||   (userName   =   userName.trim()).length()   ==   0)   {
session.setAttribute( "error ", "登录失败,请输入您的登录名。 ");
response.sendRedirect( "error.jsp ");

}
if(passWord==null   ||   passWord.length()   ==   0)   {
session.setAttribute( "error ", "登录失败,请输入您的密码。 ");
response.sendRedirect( "error.jsp ");

}
UserInter   objDB   =   UserInfoFactory.getUserInfoDB();

boolean   ret   =   false;
boolean   exception   =   false;


try{
ret   =   objDB.checkAdmin(userName,passWord);
}catch(UserExceptionappe){
exception   =   true;
session.setAttribute( "error ",appe.getMessage());
response.sendRedirect( "error.jsp ");

}catch(Exception   e){
exception   =   true;
session.setAttribute( "error ", "发生异常,管理员登录失败。 ");
response.sendRedirect( "error.jsp ");

}
if(!exception){
if(!ret){
session.setAttribute( "error ", "用户名或密码错误!请重新登陆。 ");
response.sendRedirect( "error.jsp ");

}else{
session.setAttribute( "adminName_s ",userName);
response.sendRedirect( "userlist.jsp ");

}
}
  %>
 

    </body>
</html>


出错是内容是:

          注:   at   userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)是上面pmst   =   conn.getConnection().prepareStatement(selectSql);这一行的代码.



java.lang.NullPointerException
at   userJSP.UserDBImpl.checkAdmin(UserDBImpl.java:77)
at   org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:92)
at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at   org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at   org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)


at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at   java.lang.Thread.run(Thread.java:595)

      登录返回的信息是 "用户名或密码错误!请重新登陆。 "
    小弟实在想不出是什么出错了,经过N次的试验都无法得出结果,
    现在急着解决,请高手帮下忙吧!
    有问题的可以提出来,
    多谢!!!!!!!!

[解决办法]
ConnectDB conn = new ConnectDB();
这个地方,conn肯定得到了一个null
连接数据库没成功
[解决办法]
SQL部分应该没有问题的,你可以把你的ResultSet内容打印出来看看
其它自己找找看吧,太多了,不想看!
[解决办法]
NullPointerException空指针,可能取得数据连接失败了
Connection con1=conn.getConnection();//这个能成功取得数据库连接吗?
pmst = con1.prepareStatement(selectSql);

热点排行