你应该把response.sendRedirect("login.html"); 这句写道catch块中的吧。

解决方案 »

  1.   

    把sql语句中的where qxmc = 'admin'去掉试试 :)
      

  2.   

    你在response.sendRedirect("login.html");这句前加个else
      

  3.   

    else语法错误。前面是while语句啊,if包括在while语句里。如果循环一次次判断成功的话,就重定向到manage.html,后面的代码就不执行了吧?都没成功的话,最后才重定向到login.html啊。
      

  4.   

    if(username.equals((String)rs.getString(2)) && password.equals((String)rs.getString(3)))
    换成这个试试
      

  5.   

    db.Sql_data db = new db.Sql_data();
    String sql = "select * from admin where username = '"+username+"' and password= '"+password+"';";
    java.sql.ResultSet rs = db.executeQuery(sql);
    try {
    if(rs.next()){
    response.sendRedirect("/house/admin/admin_manage.html");
    }
    else
    response.sendRedirect("/house/admin/htlogin.html");
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    小菜改成上面那样判断是可以的。。但是这样还要对username,password严格过滤吧。如果是接收传来的参数和读取出来的数据库字段值来直接比较,这样就不需要对username,password进行太严格的过滤了吧?小菜的想法有错吗?大侠指点
      

  6.   

    String sql = "select * from admin where username = '"+username+"' and password= '"+password+"';";这一句.我着实的看不懂后面的两个分号....
      

  7.   

    String username = new String(request.getParameter("username").getBytes("ISO_8859_1"),"GBK");
    不要转
    String username=request.getParameter("username").trim();
      

  8.   

    response.sendRedirect("login.html");
    逻辑关系错误,你至少加个ELSE或直接把这句加到CATCH块中去
      

  9.   

    try {
             boolean flag = false;
    while(rs.next()){
    if(username.equals(rs.getString(2).trim()) && password.equals(rs.getString(3).trim()))
    flag = true;
    };
    if(flag==true)
    response.sendRedirect("/house/admin/admin_manage.html");
    else
    response.sendRedirect("/house/admin/htlogin.html");
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    问题总算解决了。。感谢楼上所有的兄弟