以下为主要代码,jsp页面代码就贴了
javabean:用户实体类
package model;
public class Login {
private Integer user_id;
private String user_name;
private String user_password;
public Login() {
super();
}
public Login(Integer user_id, String user_name, String user_password) {
super();
this.user_id = user_id;
this.user_name = user_name;
this.user_password = user_password;
}
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
}
连接mysql:
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn {//数据连接
public static Connection getConn(Connection conn){
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myblog?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false", "root","123456");
return conn;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static void CloseConn(Connection conn){//关闭连接
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import db.DBConn;
import model.Login;
public class LoginDao {
static Connection conn;
public Login checkLogin(String user_name,String user_password){
Login login=null;
conn=DBConn.getConn(conn);
try {
PreparedStatement pstmt=conn.prepareStatement("select * from t_uesr where user_name=? "+" and user_password=?");
pstmt.setString(1,user_name);
pstmt.setString(2,user_password);
ResultSet rs=pstmt.executeQuery();
if(rs.next()) {
login=new Login();
login.setUser_id(rs.getInt(1));
login.setUser_name(rs.getString(2));
login.setUser_password(rs.getString(3));
return login;
}
return null;
} catch (SQLException e) {
e.printStackTrace();
return null;
}finally{
DBConn.CloseConn(conn);
}
}
}
servlet代码(就是接收表单的数据,与数据库比较,一致就请求转发)
package action;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import dao.LoginDao;
import model.Login;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String error1 = URLEncoder.encode("喂,用户名和密码有一个错了!", "UTF-8");
String error3 = URLEncoder.encode("喂,你密码呢!?", "UTF-8");
String success=URLEncoder.encode("你登录成功了!","UTF-8");
PrintWriter out=response.getWriter();
LoginDao ld=new LoginDao();
String username=request.getParameter("username");
String userpassword=request.getParameter("password");
if(userpassword=="") {
out.print("<script>alert(decodeURIComponent('"+error3+"'));window.location.href='./login.jsp'</script>");
}
Login login=ld.checkLogin(username, userpassword);
if(login!=null) {
HttpSession session=request.getSession();
session.setAttribute("user", login);
request.getRequestDispatcher("./main.jsp").forward(request, response);
}
else {
out.print("<script>alert(decodeURIComponent('"+error1+"'));window.location.href='./login.jsp'</script>");
}
}
}