日期:2014-05-17 浏览次数:21123 次
public class LoginServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private DataBase database = null;
//初始化函数
public void init() throws ServletException {
database = new DataBase();
}
//处理get请求方法
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
//处理post请求方法
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(); //获取用户当前会话
String username = "";
String password = "";
String page = null;
if(request.getParameter("txtUserName") != null)
username = request.getParameter("txtUserName"); //获取用户名
if(request.getParameter("txtPassword") != null)
password = request.getParameter("txtPassword"); //获取密码
//判断用户名、密码是否匹配
boolean temp = false;
//System.out.println(username + ", " + password);
Connection con = database.getConnection();
temp = DBUtilitya.isValid(con, username, password);
//关闭数据库连接
database.closeConnection(con);
if(temp){
InfoItem infoitem = null;
Connection con2 = database.getConnection();
infoitem = DBUtilitya.getUser(con2, username);
database.closeConnection(con2);
//将用户信息对象InfoItem存储在session对象当中
session.setAttribute("infoitem",infoitem);
//如果用户通过验证,则返回用户有关信息
page = "showinfo.jsp";
} else{
//如果验证失败,则显示验证失败页面
page = "errorpage.jsp";
}
//重定向到相应的页面
response.sendRedirect(page);
return;
}
}
public class DBUtilitya {
//判断用户名、密码是否正确
public static boolean isValid(Connection con, String username, String userpwd){
PreparedStatement prepStmt = null;
ResultSet rs = null; //存储查询结果
String selectStatement = "select * from userinfo1 where username='" +username+"' and userpwd = '" +userpwd+"' ";
boolean temp = false;
try{
prepStmt = con.prepareStatement(selectStatement);
prepStmt.setString(1,username);
prepStmt.setString(2,userpwd);
rs = prepStmt.executeQuery(); //查询数据库并返回结果记录集
if (rs.next()) //数据库里含有此用户名、密码对则返回true
temp = true;
else
temp = false; //否则返回false,用户名、密码不匹配
rs.close();
prepStmt.close();
}catch(Exception e){
e.printStackTrace();
}
return temp; //返回验证结果
}
//根据用户名从数据库中获取用户的注册信息
public static InfoItem getUser(Connection con, String username){
PreparedStatement prepStmt = null;
ResultSet rs = null; //结果记录集合
InfoItem infoitem = null;
String queryString = "select username,roomnumber1,roomnumber2, roomnumber3, roomnumber4 from userinfo1 where username='" +username+"'";
try{
prepStmt = con