先贴源代码:
ResultSet rs=null;
 String name = request.getParameter("name");
 String password = request.getParameter("password");
 String sqlstring = "select * from admins where Admname = '"+name+"' and Admpwd= '"+password+"'";
 rs = sqltest.executeQuery(sqlstring);
if(rs!=null) {
while(rs.next())
 {
   request.getSession(true);
   String chk="true";
   session.putValue("Enter",chk);
   
   response.sendRedirect("mainform.jsp");
 }
}
 else
 {
  String errmsg="error1";
  response.sendRedirect("login.jsp?errmsg="+errmsg);
 }运行输入用户名和密码,总是出现:您输入管理员帐号或者密码不正确!! ,但是用户名和密码肯定是对的呀!各位大侠帮着看下,程序哪里错啦?谢谢啦!!!

解决方案 »

  1.   

    不要null的判断
    if(rs!=null) {
    即使没有数据,也不会返回null的
      

  2.   

    1、最好在rs = sqltest.executeQuery(sqlstring);之前 打印出sqlstring 拿到数据库看看有没有?是不是空格啊什么的 最好trim()一下。。
    2、while(rs.next()) 为什么用while呢?if()就好了嘛。。
      

  3.   

    正解
    返回包含给定查询所生成数据的 ResultSet 对象;永远不能为 null,如果没有查询到信息,返回一个next()为false的ResultSet 对象
      

  4.   


     ResultSet rs=null;
     Boolean flag = false;
     String name = request.getParameter("name");
     String password = request.getParameter("password");
     String sqlstring = "select * from admins where Admname = '"+name+"' and Admpwd= '"+password+"'";
     rs = sqltest.executeQuery(sqlstring);
    while(rs.next())
     {
      flag = true;
      request.getSession(true);
      String chk="true";
      session.putValue("Enter",chk);
      response.sendRedirect("mainform.jsp");
     }
     if (flag) {
      String errmsg="error1";
      response.sendRedirect("login.jsp?errmsg="+errmsg);
     }
      

  5.   


     ResultSet rs=null;
     Boolean flag = false;
     String name = request.getParameter("name");
     String password = request.getParameter("password");
     String sqlstring = "select * from admins where Admname = '"+name+"' and Admpwd= '"+password+"'";
     rs = sqltest.executeQuery(sqlstring);
    while(rs.next())
     {
      flag = true;
      request.getSession(true);
      String chk="true";
      session.putValue("Enter",chk);
      response.sendRedirect("mainform.jsp");
     }
     if (!flag) {
      String errmsg="error1";
      response.sendRedirect("login.jsp?errmsg="+errmsg);
     }
      

  6.   

    源代码:ResultSet rs=null;
     String name = request.getParameter("name");
     String password = request.getParameter("password");
     String sqlstring = "select * from admins where admname = '"+name+"' and admpwd = '"+password+"'";
     rs = sqltest.executeQuery(sqlstring);
     if(rs.next())
     {
       request.getSession(true);
       String chk="true";
       session.putValue("Enter",chk);
       response.sendRedirect("mainform.jsp");
     }
     else
     {
      String errmsg="error1";
      response.sendRedirect("login.jsp?errmsg="+errmsg);
     }
    运行后出现:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/chkadmin.jsp at line 129:  String password = request.getParameter("password");
    10:  String sqlstring = "select * from admins where admname = '"+name+"' and admpwd = '"+password+"'";
    11:  rs = sqltest.executeQuery(sqlstring);
    12:  if(rs.next())
    13:  {
    14:    request.getSession(true);
    15:    String chk="true";
      

  7.   

    改成这样试试,不用flag,如果还是跳转到错误页面,说明你sql查询出来就是没有记录
    你可以debug下,查下rs到底有没有取到值if(rs.next())
     {  request.getSession(true);
      String chk="true";
      session.putValue("Enter",chk);
      response.sendRedirect("mainform.jsp");
     }
     else {
      String errmsg="error1";
      response.sendRedirect("login.jsp?errmsg="+errmsg);
     }
      

  8.   

    你把这句sql直接去数据库运行下看看,是不是字段名什么写错了
      

  9.   

    用debug  跟一下     应该是细节问题