Java+Html+MySQL 实现 注册、登录(servlet框架) --菜鸟小回

Java+Html+MySQL 实现 注册、登录(servlet框架)


博主自研AI欢迎体验: 慧言AI



前言:此博文主要介绍Java利用servlet框架实现数据库与Html数据传输,也就是前后台交互。主要使用注册和登录功能,html页面注册将个人信息插入数据库,登录查询数据库中信息匹配则登陆成功。共有“主页”、“注册”、“登录”、“登录成功”四个html页面。两个注解形式servlet类,实现“注册”、“登录”功能。一个可选择数据库增删查改封装类。功能简单,适合初学者。文中已给出所有代码。资源附件包含所有源码以及数据库文件。

注:服务器使用tomcat。查看本教程前确保eclipse中tomcat配置配置无误。

tomcat配置教程直链
源码下载 提取码: ds9u

一、部署tomcat的servlet包

  1. 配置tomcat的servlet包
    enter description here

  2. 选择Libraries并添加
    enter description here

  3. 选择Server Runtime
    enter description here

  4. 添加tomcat包
    enter description here

  5. 添加完成项目目录如图
    enter description here

二、连接数据库准备工具

  1. 创建数据库:
    enter description here
  2. 复制粘贴连接驱动包到项目下;必须放到webcontent->web-inf->lib包下
    enter description here
  3. 连接数据库(两种方法)

三、 新建html页面

enter description here
enter description here

   //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类

  1. 新建servlet类;注册页面使用
    enter description here
//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();
   					}
   				}
   	}
   
   }
  1. 绑定servlet与html
  • 1.找到WebServlet引用
    enter description here
  • 2.填写到注册页面的form表单action中:
    enter description here
  1. 同理创建并绑定登录事件
    //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();
       			}
       		}
       	}
       
       }

enter description here
enter description here

五、完成所有绑定,运行服务。

  1. 注册
    enter description here
    enter description here

  2. 数据库写入数据,控制台打印接收信息
    enter description here

  3. 登录
    enter description here

  4. 控制台打印,页面跳转
    enter description here

  • 77
    点赞
  • 616
    收藏
    觉得还不错? 一键收藏
  • 55
    评论
JavaHTML、CSS和JDBC MySQL环境中实现登录注册页面,通常需要分为以下几个步骤: 1. **HTML布局**: - 使用HTML创建用户界面,包括输入框(username, password)、登录/注册按钮等基本元素。 ```html <form action="login注册路径" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br> <label for="password">密码:</label> <input type="password" id="password" name="password"> <br> <button type="submit">登录/注册</button> </form> ``` 2. **CSS样式**: - 使用CSS美化表单,添加颜色、字体、间距等视觉效果。 ```css form { width: 300px; margin: auto; } button { background-color: #4CAF50; color: white; } ``` 3. **Java后端处理**: - 使用Java编写Servlet或Spring MVC控制器来处理HTTP请求。 - JDBC用于数据库交互,连接MySQL并操作数据(例如查询用户是否存在,保存新用户信息)。 ```java // 示例:查询用户名是否已存在 String sql = "SELECT * FROM users WHERE username = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, username); ResultSet rs = pstmt.executeQuery(); ``` 4. **JSP或Thymeleaf模板**: - 使用JSP或现代模板引擎(如Thymeleaf)动态渲染结果,显示错误消息或成功提示。 5. **安全性考虑**: - 对密码进行哈希存储,避免明文存储风险。 - 进行输入验证,防止SQL注入等攻击。 6. **部署**: - 将端静态文件和后端应用部署到服务器上,确保访问路径配置正确。
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值