- 登陸:
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陸頁面</title>
</head>
<body>
<form action="LoginServlet" method="post">
<table>
<tr>
<td>用戶名:</td>
<td><input type="text" name="user" /></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="登錄"/></td>
<td><input type="button" value="註冊" onclick="window.location.href('register.jsp')"/></td>
</tr>
</table>
</form>
</body>
</html>
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("UTF-8");
// TODO Auto-generated method stub
String user = request.getParameter("user"); //從表單獲取用戶名
String pass = request.getParameter("password"); //從表單獲取密碼
System.out.println(user+pass); //測試
//判斷
if (connectsql(user, pass) == 1){
response.getWriter().println("登陸成功!"+"Hello " + user + "!");
response.getWriter().println("<br/><a href='http://localhost:8080/project_1/login.jsp'>返回登陸頁面");
}
else if (connectsql(user, pass) == 2) {
response.getWriter().println("密碼錯誤!請重新輸入");
response.getWriter().println("<br/><a href='http://localhost:8080/project_1/login.jsp'>返回登陸頁面");
}
else {
response.getWriter().println("登陸失敗!"+"Sorry " + user + "!"+"請先進行註冊");
response.getWriter().println("<br/><a href='http://localhost:8080/project_1/login.jsp'>返回登陸頁面");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
@SuppressWarnings("resource")
protected int connectsql(String username, String password){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // 加載數據庫驅動
// 通過驅動管理類獲取數據庫鏈接
connection = DriverManager
.getConnection("jdbc:mysql://localhost:3306/login?serverTimezone=UTC&characterEncoding=utf-8","root", "PdM46t");
String sql = "select * from record"; // 定義sql語句
// 獲取預處理statement
preparedStatement = connection.prepareStatement(sql);
// 向數據庫發出sql執行查詢,查詢出結果集
resultSet = preparedStatement.executeQuery();
// 遍歷查詢結果集
while (resultSet.next()) {
System.out.println(resultSet.getString("user") + " "
+ resultSet.getString("password"));
if (resultSet.getString("user").equals(username))
if (resultSet.getString("password").equals(password))
return 1; //用戶名密碼正確,返回1
else
return 2; //用戶名正確,密碼錯誤,返回2
}
}
catch (Exception e) {
e.printStackTrace();
} finally {
// 釋放資源
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//用戶名不存在,返回0
return 0;
}
- 註冊:
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>註冊頁面</title>
</head>
<body>
<form action="RegisterServlet" method="post">
<table>
<tr>
<td>用戶名:</td>
<td><input type="text" name="user" /></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="註冊"/></td>
<td><input type="button" value="返回" onclick="window.location.href('login.jsp')"/></td>
</tr>
</table>
</form>
</body>
</html>
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("UTF-8");
String user = request.getParameter("user"); //從表單獲取用戶名
String pass = request.getParameter("password"); //從表單獲取密碼
//response.getWriter().println(user+pass); //測試
connectsql(user,pass);
response.getWriter().println("註冊成功");
response.getWriter().println("<br/><a href='http://localhost:8080/project_1/login.jsp'>返回登陸頁面");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
protected int connectsql(String username, String password){
Connection con = null;
PreparedStatement pstm = null;
try {
// 加載數據庫驅動
Class.forName("com.mysql.cj.jdbc.Driver");
// 通過驅動管理類獲取數據庫鏈接
con= DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/login?serverTimezone=UTC&characterEncoding=utf-8",
"root", "PdM46t");
String sql = "insert into record(user,password) value(?,?)";
pstm = con.prepareStatement(sql);
pstm.setString(1, username);
pstm.setString(2, password);
int row = pstm.executeUpdate();
System.out.println("新增數據爲:" + row + "條");
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
finally{
if(con != null){
try {
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
if(pstm != null){
try {
pstm.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
return 0;
}
數據庫: