假设数据库已经添加了用户表
在工程webcontent下准备一个登录页面login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="/java_web/Login" method="post">
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="登录" /><br/>
</from>
</body>
</html>
项目src文件夹下新建LonginServlet(如果用eclipse新建的servlet会自动在web.xml中添加此servlet标签如有需要修改下网站路径url-pattern)
package demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import domain.User;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//获得request传来的参数
String username = request.getParameter("username");
String password = request.getParameter("password");
//封装到User类
User user = new User();
user.setName(username);
user.setPassword(password);
//查询用户是否存在
UserService us = new UserService();
User userFlag = us.login(user);
//response反馈
if(userFlag != null) {
response.getWriter().println("User:" + username + "登录成功!");
}else {
response.getWriter().println("用户不存在或密码错误!");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
LoginServlet中用到的类
User类 - Java bean 全部用eclipse生成的没必要贴出来了
UserService类 - 提供了检测用户登录等功能的服务层类
package demo;
import domain.User;
public class UserService {
private DAO dao = new DAO();
public User login(User user) {
//调用DAO中的登录函数
return dao.lgoin(user);
}
}
DAO类 - 数据访问对象(Data Access Object DAO) 将低级别的数据访问逻辑与高级别的业务逻辑分离的设计模式。
DAO使用C3P0连接池与Apache JDBCUtil
连接池不会的 点击这里
Apache JDBCUtil 点击这里
package demo;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import DBUtils.C3P0Utils;
import domain.User;
public class DAO {
private static QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());;
public User lgoin(User user) {
/*
* 检测传入用户的帐号密码是否存在与数据库
* 存在返回该用户的bean
* 不存在返回null
*/
String sql = "select * from user where username=? and password=?";
try {
return qr.query(sql, new BeanHandler<domain.User>(domain.User.class), user.getName(),user.getPassword());
} catch (SQLException e) {
return null;
}
}
}
运行工程进入login.html
输入帐号密码测试成功。