比入門還入門的用JSP實現登錄驗證和註冊(詳細)

寫在前面的話

本人也是剛接觸到JSP,還有很多需要學習的地方。用JSP實現登錄驗證和註冊我很認真的寫了詳細思路,以下代碼有什麼不合理或者需要改進的地方,大噶可以給我提寶貴的建議哈

數據庫

現有 數據庫 【userdemo】表【information】
在這裏插入圖片描述

登錄實現

思路步驟:
(1)表單提交信息跳轉到登錄驗證界面,驗證表單提交信息是否註冊並且用戶名和密碼正確
(2)登錄驗證的思路:動態加載mysql驅動,連接數據庫中相對應的表,與表中數據進行比對,用flag標記狀態。根據比對結果跳轉登錄成功或者登錄失敗頁面
(3)特別注意:這裏跳轉頁面要使用 【請求轉發】,不要使用 【重定向】。請求轉發可以保留表單提交的數據,而重定向不能保留

登錄頁面

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陸頁面</title>
<style>
   a {
      text-decoration: none;
      color: black;
   }
   form {
   	  display:inline;
   }
    </style>
</head>
<body>
	<form action='register_check.jsp' method="post">
		用戶名:<input type="text" name='name'><br>
		密碼:<input type="password" name='pwd'><br>
		<input type="submit" value="登錄">
	</form>
	<button><a href="1.jsp">註冊</a></button>	
</body>
</html>

在這裏插入圖片描述

登錄驗證

register_check.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登記驗證</title>
</head>
<body>

<%
	Class.forName("com.mysql.jdbc.Driver");//動態加載mysql驅動
	boolean flag = true;
	Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/【數據庫名】?serverTimezone=UTC","root","【密碼】");
	Statement stmt =conn.createStatement();
	ResultSet RS_result = stmt.executeQuery("SELECT * FROM  【表名】 ");
	String pwd,name;
	while(RS_result.next()){
		pwd = RS_result.getString("pwd");
		name = RS_result.getString("name");
		if(request.getParameter("name").equals(name)&&request.getParameter("pwd").equals(pwd)){
			flag=false;
			request.getRequestDispatcher("check_success.jsp").forward(request,response);
%>
		
<%		
		}else{
			continue;
		}
%>

<%
	};
	stmt.close();
	conn.close();
	if(flag)
		request.getRequestDispatcher("check_fail.jsp").forward(request,response);
%>

</body>
</html>

登錄成功

check_success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登錄成功</title>
</head>
<body>
<h2>登錄成功</h2>
 <%
	//設置編碼
	request.setCharacterEncoding("UTF-8");
	//獲取值
	String name = request.getParameter("name");
	out.print("歡迎"+name);
%>
</body>
</html>

在這裏插入圖片描述

登錄失敗

check_fail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登錄失敗</title>
</head>
<body>
<h2>登陸失敗</h2>
<h2>輸入的用戶名或密碼有錯</h2>
</body>
</html>

在這裏插入圖片描述

註冊實現

思路步驟:

註冊頁面

1.jsp
(1)在登錄頁面中 點擊【註冊】按鈕(其內是一個a標籤) 進入註冊頁面
(2)註冊驗證同登錄驗證相類似。連接數據庫–>與數據庫中信息比對,是否已經有相同用戶名註冊–>若沒有則註冊成功,有則註冊失敗(用flag做標誌)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>註冊頁面</title>
</head>
<body>
	<form action='registered.jsp' method="post">
		用戶名:<input type="text" name='name'><br>
		密碼:<input type="password" name='pwd'><br>
		<input type="submit" value="註冊">
	</form>
</body>
</html>

在這裏插入圖片描述

註冊驗證

registered.jsp

<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>註冊驗證</title>
</head>
<body>
<%
	Class.forName("com.mysql.jdbc.Driver");//動態加載mysql驅動
	String name1=request.getParameter("name").trim();//去除首尾空格
	String pwd1=request.getParameter("pwd").trim();
	boolean flag = true;
	Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/【數據庫名】?serverTimezone=UTC","root","【密碼】");
	Statement stmt =conn.createStatement();
	ResultSet RS_result = stmt.executeQuery("SELECT * FROM 【表名】  ");
	String pwd,name;
	while(RS_result.next()){
		pwd = RS_result.getString("pwd");
		name = RS_result.getString("name");
		if(request.getParameter("name").equals(name)){
			out.print("用戶已經存在  "+"請重新<a href=\"1.jsp\">註冊</a>");
			flag=false;
			break;
		};
	}
%>

<% 	
	if(flag){
		stmt.executeUpdate("insert into infomation values('"+name1+"','"+ pwd1 + "')");

%>	
		註冊成功!!!<br>
		請點擊<a href="text.jsp">這裏</a>登錄!!!
<%
	};
%>
<%
	
	stmt.close();
	conn.close();

%>		
</body>
</html>

註冊成功

在這裏插入圖片描述
數據庫中
在這裏插入圖片描述

註冊失敗

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章