操作系统:windows2000
工具:netbeans5.5+sqlserver2000jsp界面取出的用户id 是0001密码是1111
sqlserver中有相应的表
也是0001、1111
用界面取出的用户id能在数据库中进行查询
但界面取出的密码和数据库中的密码比较出错了
都是1111
为什么不相同呢
用equals应该没错的试了一下不用数据库中的密码
写死一个值="1111"
可以比较出是否相同
是不是数据库中取出的值要编码转换?
还是jsp界面上的值要转换?
jsp里用的编码是UTF-8
已经去掉空格了
谢谢大家

解决方案 »

  1.   

    得到的密码和数据库中的密码都是"1111",已经打印出来了,所以才觉得奇怪
    就是不相等
    怀疑是界面上取出的密码和数据库中取出的密码编码不同
    可能utf8和gb2312的"1111"是不同的吗?
      

  2.   

    取界面的用户名、密码
        String u = request.getParameter("username").trim();
        String p = request.getParameter("password").trim();
        //p="1111";已经打印出来了
    数据库中的用户名、密码
        user = rs.getString(1);
        password = rs.getString(2);
        //password="1111"已经打印出来了
        if (!p.equals(password)){                               
           //密码不正确              
        }
    虽然p与password的值相同,但就是显示密码不正确