Java+Html+MySQL 实现 注册、登录(servlet框架)
博主自研AI欢迎体验: 慧言AI
文章目录
前言:此博文主要介绍Java利用servlet框架实现数据库与Html数据传输,也就是前后台交互。主要使用注册和登录功能,html页面注册将个人信息插入数据库,登录查询数据库中信息匹配则登陆成功。共有“主页”、“注册”、“登录”、“登录成功”四个html页面。两个注解形式servlet类,实现“注册”、“登录”功能。一个可选择数据库增删查改封装类。功能简单,适合初学者。文中已给出所有代码。资源附件包含所有源码以及数据库文件。
注:服务器使用tomcat。查看本教程前确保eclipse中tomcat配置配置无误。
tomcat配置教程直链
源码下载 提取码: ds9u
一、部署tomcat的servlet包
-
配置tomcat的servlet包
-
选择Libraries并添加
-
选择Server Runtime
-
添加tomcat包
-
添加完成项目目录如图
二、连接数据库准备工具
- 创建数据库:
- 复制粘贴连接驱动包到项目下;必须放到webcontent->web-inf->lib包下
- 连接数据库(两种方法)
- 1.连接数据库连接详解直链
- 2.选择我的数据库工具类:
- 连接我的数据库注意修改配置:
三、 新建html页面
//index 主页
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="logon.html"><button>登录</button><br></a><br>
<a href="register.html"><button>注册</button></a>
</body>
</html>
//logon 登录
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Logon" method="post">
账号:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录"><input type="reset" value="重置">
</form>
</body>
</html>
//register注册页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="User" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
生日:<input type="date" name="brithday"><br>
性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>
<input type="submit" value="注册"><input type="reset" value="重置">
</form>
</body>
</html>
//success登录成功页面
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<title>Insert title here</title>
</head>
<body>
成功
</body>
</html>
四、实现servlet类
- 新建servlet类;注册页面使用
//User 注册servlet类
package com.zhiyou.user;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhiyou.mysqltest.MysqlTool;
@WebServlet("/User")
public class UserFrom extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置请求的字符集
request.setCharacterEncoding("utf-8");
//设置相应的文本类型
response.setContentType("text/html;charset=utf-8");
//数据库工具类
MysqlTool to=new MysqlTool();
String username=request.getParameter("username");
String password=request.getParameter("password");
String brithday=request.getParameter("brithday");
String sex=request.getParameter("sex");
if(username==null||password==null||brithday==null||sex==null){
response.sendRedirect("index.html");
}else{
System.out.println(username+"\t"+password+"\t"+brithday+"\t"+sex);
String sql1="select id from user where username=?";
Object[] objs1={username};
ResultSet rs=to.query(sql1, objs1);
try {
if(rs.next()){
response.sendRedirect("register.html");
}else{
String sql2="insert into user(username,password,brithday,sex)values(?,?,?,?)";
Object[] objs2={username,password,brithday,sex};
int a=to.update(sql2,objs2);
if(a>0){
response.sendRedirect("index.html");
}else{
response.sendRedirect("register.html");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
- 绑定servlet与html
- 1.找到WebServlet引用
- 2.填写到注册页面的form表单action中:
- 同理创建并绑定登录事件
//Logon 登录servlet类
package com.zhiyou.user;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhiyou.mysqltest.MysqlTool;
@WebServlet("/Logon")
public class Logon extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
MysqlTool to=new MysqlTool();
String username=request.getParameter("username");
String password=request.getParameter("password");
if(username==null||password==null){
//重新登录
System.out.println("账号或密码错误!");
response.sendRedirect("logon.html");
}else{
String sql="select * from user where username=? and password=?";
Object[] objs={username,password};
ResultSet rs= to.query(sql, objs);
try {
if(rs.next()){
//登陆成功,跳转到success页面
System.out.println("登陆成功!!");
request.getRequestDispatcher("success.html").forward(request, response);
/*response.sendRedirect("success.html");*/
}else{
System.out.println("账号或密码错误!");
response.sendRedirect("logon.html");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
五、完成所有绑定,运行服务。
-
注册
-
数据库写入数据,控制台打印接收信息
-
登录
-
控制台打印,页面跳转