String ps=rs.getString("password");
if(qq.equals(ps))
 out.print("true")

解决方案 »

  1.   

    楼上的兄弟,我是通过javabean的设置password的值的
    不是这么简单的
      

  2.   

    1。out.print("true")没分号2。如何是要验证密码是否正确的话,就不用这么费事。可以直接用"qq"查询数据库
    String password="qq";
    sql = "select * from table where password = " + password;
    ..............
    if(rs.next()){
       System.out.println("true");
    }else{}
      

  3.   

    肯定是不相等了,你把else也写出来,检查一下,建议从数据库中取出来的数据去一下前后面的空格!或者打出来看一下!
      

  4.   

    我的bean类如下:
    package test;
    import java.sql.*;
    public class Login
    {
     String users,
            usertype,
            password,
            success="false",
            message="";
     Connection con;
     Statement sql;
     ResultSet rs;
     public Login()
     {
      try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       }
      catch(ClassNotFoundException e){}
     }
     
     public void setUsers(String name)
     {
      users=name;
     }
     
     public String getUsers()
     {
      return users;
     }
     
      public void setUsertype(String s)
     {
      usertype=s;
     }
     
     public String getUsertype()
     {
      return usertype;
     }
     
      public void setPassword(String pw)
     {
      password=pw;
     }
     
     public String getPassword()
     {
      return password;
     }
     
     public String getSuccess()
     {
      return success;
     }
     
     public String getMessage()
     {
      try{
       con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
       sql=con.createStatement();
       String condition="select * from loginsign WHERE users="+"'"+users+"'";
       rs=sql.executeQuery(condition);
       String ps="", bs="";
       while(rs.next())
       {
        ps=(String)rs.getString("password");
        bs=(String)rs.getString("usertype");
        }
        if((usertype.equals(bs))&&(password.equals(ps)))
        {
         message="ok";
         success="ok";
         }
         else
          {
          message="你输入的用户名或密码不正确";
          success="false";
          }
          rs.close();
          sql.close();
          con.close();
          return message;
          }
         catch(SQLException e1)
         {
          message="类错误";
          success="false";
          return message;
          }
          }
          }
      

  5.   

    if(password.equals(ps)){
    out.print("true");
    }else{
    out.println("false");

    你得先确定 ps是不是等于 qq
      

  6.   

    这个可以肯定,我把password和usertype打出来后两个数据之间有空格,是不是这里的错误啊,该怎么去空格?
      

  7.   

    我的测试程序如下:
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="test.Login"%>
    <jsp:useBean id="g" class="test.Login" scope="page">
    </jsp:useBean>
    <jsp:setProperty name="g" property="usertype" value="s" />
    <jsp:setProperty name="g" property="users" value="y" />
    <jsp:setProperty name="g" property="password"  value="123" />
    <% String message=g.getMessage();
       out.print(message);
    %>
    我在bean里加上ps.trim();和bs.trim()还是不行啊
      

  8.   

    应该是没有去空格,用string的trim()方法就可以了。另外,我想建议楼主写javabean不要这样把数据库操作和bean写在一起
    分两个类写,一个类专门负责获得数据,另一个类专门操作数据库然后可以用servlet来调用他们就可以了。
      

  9.   

    首先判断是不是 null值,然后再去掉空格。
    String ps=rs.getString("password");
    String password="qq"; if (ps != null) {
        if(qq.equals(ps.trim())) {
           out.print("true");
        } else {
           out.print("false");
        }
     } else {
        out.print("false");
     }
      

  10.   

    用System.out.println(password)测试下!
      

  11.   

    String ps=(rs.getString("password")!=null)?rs.getString("password").trim():"";