无标题文档
<% //获取提交的用户名和密码
String name=request.getParameter("name");
String pword=request.getParameter("pword");
if(name==null)
name="";
try{
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
}catch(Exception e2){}
if(pword==null)
pword="";
try{
byte b[]=pword.getBytes("ISO-8859-1");
pword=new String(b);
}catch(Exception e3){}
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){out.print("class not found!");}
try{
con=DriverManager.getConnection("jdbc:odbc:ssodb","sa","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT id,password FROM ssologin WHERE username="+"'"+name+"'");
if(rs.next()==false)
out.print("用户名输入错误!");
else {String s=rs.getString("password");
out.println(s);
out.println(pword);//这里的输出显示两个字符串明明是一样的
if(s.compareTo(pword)==0)
out.print("登录成功!");
else out.print("密码错误!");//可是比较之后总是显示密码错误
}
}catch(SQLException e1){out.println("SQLException");}
%>
解决方案1: String pword=request.getParameter("pword").trim();
String s=rs.getString("password").trim();
解决方案2: 两个字符串一样的话这个程序应该没什么问题呀,
要不你试试这样写,s.trim().compareTo(pword)==0
或用:lhbf(牧野)所说的,这样写:s.equals(pword)
解决方案3: if(s.equals(pword))
out.print("登录成功!");
解决方案4: 字符串比较是用equals而非等号。
以上介绍了“ Resultset的getString操作获得的字符串的比较问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2373186.html
相关图片
相关文章