比入门还入门的用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>

注册成功

在这里插入图片描述
数据库中
在这里插入图片描述

注册失败

在这里插入图片描述

发布了61 篇原创文章 · 获赞 58 · 访问量 4015

猜你喜欢

转载自blog.csdn.net/qq_45473786/article/details/105290932