新建User对象
User.java
package com.atguigu.login.beans;
public class User {
private Integer id ;
private String username ;
private String password ;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}
打开SQLyog新建一个数据库和表
打开创建的表,手动设置数据
创建UserDAO.java
package com.atguigu.login.dao;
import com.atguigu.login.beans.User;
public interface UserDao {
public User getUserByUsernameAndPassword(String username, String password);
}
创建一个UserDAOImpl.java
package com.atguigu.login.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.atguigu.login.beans.User;
public class UserDaoImpl implements UserDao{
@Override
public User getUserByUsernameAndPassword(String username, String password) {
User u = null ;
//JDBC:获取连接 编写SQL 预编译SQL 设置参数 执行SQL 封装结果 关闭连接
//获取连接
try {
Class.forName("com.mysql.jdbc.Driver") ;
String url = "jdbc:mysql://localhost:3306/bigdata_0308" ;
String user = "root" ;
String pawd = "111111" ;
Connection conn = DriverManager.getConnection(url,user, pawd) ;
String sql = "select id, username, password from tbl_user where username = ? and password = ?" ;
PreparedStatement ps = conn.prepareStatement(sql) ;
ps.setString(1, username) ;
ps.setString(2, password) ;
ResultSet rs = ps.executeQuery() ;
if(rs.next()){
u = new User();
u.setId(rs.getInt("id"));
u.setUsername(rs.getString("username"));
u.setPassword(rs.getString("password"));
}
return u;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
修改LoginServlet.java
package com.atguigu.login.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.atguigu.login.beans.User;
import com.atguigu.login.dao.UserDao;
import com.atguigu.login.dao.UserDaoImpl;
/*
* 处理登陆请求的Servlet
*
* Servlet是sun公司制定的标准,Tomcat(web应用服务器、Servlet容器)实现了这些标准
*
* HttpServlet:
*/
public class LoginServlet extends HttpServlet{
/*
* 常用方法:doGet doPost service
* doGet:处理客户端的get方式的请求
* doPost:处理客户端的post方式的请求
*
* service:根据具体的请求方式去调用对应的doGet、doPost方法
*/
// @Override
// protected void service(HttpServletRequest req, HttpServletResponse resp)
// throws ServletException, IOException {
// // TODO Auto-generated method stub
// super.service(req, resp);
// }
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 登录功能实现
System.out.println("登录过来了");
//获取到 用户输入的用户和密码,进行登录业务的处理
/*
* HttpServletRequest: 请求对象。Servlet容器会在请求到达后,创建一个request对象,
* 将Http请求相关的信息全部都封装到该对象中。
*/
req.setCharacterEncoding("utf-8");
//获取用户名
String username = req.getParameter("username");
// 获取密码
String password = req.getParameter("password");
System.out.println(username + " , " + password);
//验证用户名与密码是否正确
// 通过响应对象 HttpServletResponse , 给客户端响应数据
//返回模式使用utf-8
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
//获取Dao对象
UserDao userDao = new UserDaoImpl() ;
User user = userDao.getUserByUsernameAndPassword(username, password) ;
if(user == null){
//登录失败
out.println("<h1><font color='red'>Login Fail<font></h1>");
} else {
//登录成功
out.println("<h1><font color='green'>Login Success!<font></h1>");
}
/*if("Admin".equalsIgnoreCase(username) && "123456".equals(password)){
//登录成功
out.println("<h1><font color='green'>Login Success!<font></h1>");
}else {
// 登录失败
//PrintWriter out = resp.getWriter();
out.println("<h1><font color='red'>Login Fail<font></h1>");
}*/
}
}
登录运行即可,账号密码为数据库表中的设置数据