1、连接mysql数据库
public class DBDao {
private static String USER = "USERNAME";
private static String PASSWORD = "PASSWORD";
private static String DB_URL = "jdbc:mysql://IP ADDRESS:PORT/DB NAME";
private static String DB_DRIVER = "com.mysql.jdbc.Driver";//这里要注意是否引入了该驱动jar包
private static Connection connection = null;
//连接数据库
public static Connection getConnection(){
try {
Class.forName(DB_DRIVER);
connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);
} catch (Exception e) {
System.out.println("数据库连接异常");
e.printStackTrace();
}
return connection;
}
//关闭数据库连接
public static void closeConnection(Connection connection){
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2、登录DAO层
public class LogInDao {
Supplier user = null;
private String SQL ="";
public Supplier login(String username, String password){
SQL = "select * from USER where USERNAME = ? and PASSWORD = ?";
Connection connection = null;
PreparedStatement pstmt = null;
try {
connection = DBDao.getConnection();
pstmt = (PreparedStatement) connection.prepareStatement(SQL);
//将用户名和密码填到SQL语句的问号处
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rSet = (ResultSet) pstmt.executeQuery();//得到数据库的查询结果,一个数据集
//判断结果集是否有效
if(rSet.next()){
System.out.println(rSet.getString(0));
user = new Supplier();
user.setId(rSet.getString("id"));
user.setName(rSet.getString("username"));
}
connection.close();
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
DBDao.closeConnection(connection);
}
return user;
}
}
3、登录servlet层
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
//获取用户名和密码
String username = request.getParameter("userName");
String password = request.getParameter("password");
password=MD5.MD5(password);
LogInDao logInDao = new LogInDao();
Supplier user = logInDao.login(username,password);
// 判断user是否为空
if(user != null){
System.out.println("登录成功");
try {
//将登录用户信息存入session
User user = new User();
user.setId(user.getId());
user.setsName(user.getName());
HttpSession session = request.getSession();
session.setAttribute("user", user);
} catch (Exception e) {
e.printStackTrace();
}
//跳转页面
response.sendRedirect("/successPage");
}else{
//提示失败,刷新当前页面 response.sendRedirect("/failPage");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4、JSP层
<form method="post" action="LoginServlet" onSubmit="return login(this);">
Servlet登录<br>
用户名:<input type="text" name="adminName" ><br>
密码:<input type="password" name="password" ><br>
<input type="submit" value="登录">
</form>
至此,一个完整的servlet+jsp的登录功能就完成了。