日期:2014-05-17  浏览次数:20682 次

javabean+mysql做登陆问题
先上代码:
这是login.jsp中的部分:
<jsp:useBean id="Link" scope="page" class="dcl.util.login.LoginBean" /> 
  <% 
  String inputID =request.getParameter("id"); 
  String inputPwd =request.getParameter("password");  
  boolean flag;
   
  if (inputID != null && inputPwd != null) { 
  flag = Link.logon(inputID, inputPwd);
  if (flag){ 
  response.sendRedirect("usermain.jsp"); 
  }else{ 
  response.sendRedirect("register.jsp");  
  }  
  } 
  %>
这是LoginBean.class中的部分:
package dcl.util.login;
import java.sql.*;

public class LoginBean {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
private boolean flag;

public boolean logon( String inputID, String inputPwd ) 
throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException 
{
try{
new com.mysql.jdbc.Driver();
Class.forName("com.mysql.jdbc.Driver").newInstance();

conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dcl_2_tc_db?characterEncoding=UTF-8", 
"root", 
"1991727");

stmt = conn.createStatement();
rs = stmt.executeQuery("select * from user-puerpera-password");

flag = false;
while(rs.next()){
String id = rs.getString("ID");
String password = rs.getString("password");
if( id.equals(inputID) && password.equals(inputPwd) ){
flag = true;
break;
}
}
}catch(SQLException e){
e.printStackTrace();
}

if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();

return flag;
}
}
目的:
用户输入用户名和密码后,用logon(id, pwd)在数据库里查找有无该用户,根据返回值判断打开的页面。
问题:
发现返回值一直是false。
数据库名称是dcl_2_tc_db,表名为user-puerpera-password,有两列,一列是ID,类型是varchar;一列是password,类型是varchar,使用的字符集是utf-8,网页使用的字符集也是utf-8,都使用gbk时也试过,返回的依然是false。
感觉是rs = stmt.executeQuery("select * from user-puerpera-password");这句有问题,还没学数据库呢。
请大家帮帮忙吧,一上午就搞了这么一点,郁闷死了。

------解决方案--------------------
根据用户名去查找数据 如果空返回false 如果有数据再比较 select * from **** where ID=‘inputid’;