JSP实现简单的用户登录和注册

实验环境:Tomcat 9.0,MySQL 8.0,JDBC 8.0;

实验方法,利用连接池连接MySQL进行操作

首先创建一个Dynamic Web Project

1.连接池的创建

在 WebContent 目录下的 META_INF 目录下创建文件 context.xml记住文件的名字不能更改
在这里插入图片描述
context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
	<Resource name="jdbc/mysql"
	auth="Container"
	type="javax.sql.DataSource"
	username="root"
	password="123456"
	maxIdle="30" 
    maxWait="10000" 
    maxActive="100"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://127.0.0.1:3306/Duser?serverTimezone=GMT"
    logAbandoned="true" />
</Context>

在这里插入图片描述
2.mysql数据库的创建

create database Duser;
use Duser;
create table user(
	name varchar(30) not null,
	password varchar(30) not null,
	constraint primary key(name) //添加姓名为主键
);

4.login.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 align="center"><font color=red>用户登录页面</font></h2>
	<form action="success.jsp" method="post">
	<table align="center" border="1">
		<tr>
			<td>用户名:</td>
			<td><input type="text" name="name"></td>
		</tr>
		<tr>
			<td>密&nbsp;&nbsp;码:</td>
			<td><input type="text" name="password"></td>
		</tr>
		<tr>
			<td><input type="submit" value="登录" name="login"></td>
			<td><input type="reset" value="重置" name="reset"></td>
		</tr>
	</table>
	<p align="center"><a href="registered.jsp" color=blue>注册用户</a></p>
	</form>
	
</body>
</html>

5.registered.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body align="center">
	<h2>新用户注册</h2>
	<form action="registeredSucceed.jsp" method="post">
		<table align="center">
			<tr align="right">
		 		<td>请输入用户名:</td>
				<td><input type="text" name=name autofocus="autofocus"></td>
			</tr>
			<tr align="right">
				<td>请输入密码:</td>
				<td><input type="text" name=password></td>
			</tr>
			<tr align="right">
				<td>请输入确认密码:</td>
				<td><input type="text" name=refill></td>
			</tr>
		</table>
			<input type="submit" name=register value="注册" >
			<input type="reset" name=refill value="重填" >
		</form>
	 
		
</body>
</html>

6.registeredSucceed.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>
<%
		Context ctx = null;
		DataSource ds = null;
		Statement stmt =null;
		ResultSet rs = null;
		Connection con = null;
		String name=request.getParameter("name").trim();//去除首尾空格
		String password=request.getParameter("password").trim();
		String refill=request.getParameter("refill").trim();
		try{
		ctx = new InitialContext();
		ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");//mysql是在创建连接池时自己创建的名字
		con = ds.getConnection();
		stmt = con.createStatement();
		if(name!=null ){
			rs=stmt.executeQuery("select * from user where name='"+name+"'");
			
			if(rs.next()){
				out.print("用户已经存在  "+"请<a href=\"registered.jsp\">注册</a>");
			}else{
				if(password.equals(refill)){
	 				stmt.executeUpdate("insert into user values('"+name+"','"+ password + "');");
				%>
				注册成功!!!<br>
				三秒钟后自动转到登录页面!!!<br>
				如果没有跳转,请点击<a href="login.jsp">这里</a>!!!
				<span style="font-size:24px;"><meta http-equiv="refresh" content="3;URL=login.jsp"> </span>
<% 
				}else{
				out.print("密码输入不一致!!!<br>"+"重新<a href=\"registered.jsp\">注册</a>");
				}
			}
			}else {
				out.print("姓名不能为空");
			}
		}catch(Exception e){
			out.print(e);
		}finally{
			if(rs!=null)
				rs.close();
			if(stmt!=null)
				stmt.close();
			if(con!=null)
				con.close();
		}
%>

</body>
</html>

7.success.jsp

<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<%request.setCharacterEncoding("utf-8"); %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>判断登录</title>
</head>
<body>
	<%
		Context ctx = null;
		DataSource ds = null;
		Statement stmt =null;
		ResultSet rs = null;
		Connection con = null;
		String name = request.getParameter("name").trim();
		String password = request.getParameter("password").trim();
		try{
			ctx = new InitialContext();
			ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");//mysql是在创建连接池时自己创建的名字  语句功能找到配置的数据库
			con = ds.getConnection();//创建数据库连接
			stmt = con.createStatement();
			rs=stmt.executeQuery("select * from user where name='"+name+"'");
			if(rs.next()){
				rs=stmt.executeQuery("select * from user where name='"+name+"' and password='"+password+"'");
				if(rs.next()){
					out.print(name+"登录成功");
				}else{
					out.print("密码输入错误!!!<br>"+"重新<a href=\"login.jsp\">登录</a>");
				}
			}else{
				out.print("<font color=red>"+name+"</font>用户不存在!!!<br>"+"请点击<a href=\"registered.jsp\">注册</a>");
			}
		}catch(Exception e){
			out.print(e);
		}finally{
			if(rs!=null)
				rs.close();
			if(stmt!=null)
				stmt.close();
			if(con!=null)
				con.close();
		}
	%>
	
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外还有登录时密码不正确的提示,以及注册时密码输入不一致的判断的功能,也可以去除注册时的空格。可以自己尝试一下这里就不做介绍了

  • 124
    点赞
  • 1042
    收藏
    觉得还不错? 一键收藏
  • 101
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 101
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值