# JavaWeb-实现登录和注册功能 **Repository Path**: yuJunOk/JavaWeb-loginAndRegister ## Basic Information - **Project Name**: JavaWeb-实现登录和注册功能 - **Description**: 登录和注册的功能是基于JavaWeb应用场景开发的,本项目已有非常完整的项目逻辑和相关工程文件,现开源和大家共同学习。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2022-02-26 - **Last Updated**: 2024-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaWeb-实现登录和注册功能 #### 介绍 这个登录和注册的功能是基于JavaWeb应用场景开发的,本项目已有非常完整的项目逻辑和相关工程文件,现开源和大家共同学习。 本人是跟着念安老师的视频教材学的,视频链接为[JavaWeb项目实战-用户登录实例视频教学-超高清4KJava学习视频_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV18h411e78e?spm_id_from=333.1007.top_right_bar_window_view_later.content.click)。除此之外,本人还在念安老师的基础上添加了注册功能。 #### 文件说明 ​ 1.README.md : 项目概要说明 ​ 2.java_test.sql : 数据库脚本文件 ​ 3.loginProject : 项目工程文件夹 #### 项目运行环境 1. java : 1.8.0_321版本jdk 2. maven : 3.5.4版本 3. tomcat : 9.0.58版本 3. IntelliJ IDEA 2021.1.2 3. mysql : 8.0.27版本 3. navicat : Navicat Premium 12 #### 使用说明 ​ 1.将数据库脚步文件运行建表插入数据 ​ 2.把项目工程导入到IntelliJ IDEA即可运行 #### 项目相关逻辑 ``` 1. 相应数据库和表 tb_user () mysql 2. 前台页面 登陆页面 login.jsp 用户登录 JS校验 登录表单验证 1. 给登录按钮绑定点击事件 2. 获取用户姓名和密码 3. 判断姓名是否为空 如果姓名为空,提醒用户(span标签赋值),并且return 4. 判断密码是否为空 如密码为空,提醒用户(span标签赋值),并且return 5. 如果都不为空,则手动提交表单 跳转到注册页面 1. 给注册按钮绑定点击事件 点击注册按钮重定向到注册页面 首页 index.jsp 注册页面 register.jsp 用户注册 JS校验 1.给注册按钮绑定点击事件 2.获取用户姓名、密码以及年龄 3. 判断姓名是否为空 如果姓名为空,提醒用户(span标签赋值),并且return 4. 判断密码是否为空 如密码为空,提醒用户(span标签赋值),并且return 5. 如果都不为空,则手动提交表单 3. 后台实现 *登录功能 思路: 1. 接收客户端的请求(接受参数:姓名、密码) 2. 参数的非空判断 如果参数为空,通过消息模型对象返回结果(设置状态、设置提示信息、回显数据) 将消息模型设置到request作用域中 请求转发跳转到登陆页面 return 3.通过用户姓名查询用户对象 4.判断用户对象是否为空 如果为空,通过消息模型对象返回结果(设置状态、设置提示信息、回显数据) 将消息模型设置到request作用域中 请求转发跳转到登陆页面 return 5.将数据库中查询到的用户密码与前台传递的密码作比较 如果不相等 通过消息模型对象返回结果(设置状态、设置提示信息、回显数据) 将消息模型设置到request作用域中 请求转发跳转到登陆页面 如果相等,表示登录成功 将用户信息设置到session作用域中 重定向跳转到首页 controller层(接收请求,响应结果) 1.接收客户端的请求(接受参数:姓名、密码) 2.调用service层的方法,返回消息模型对象 3.判断消息模型状态 如果状态码是失败 将消息模型对象设置到request作用域中,请求转发跳转到login.jsp 如果状态码是成功 将消息模型对象设置到session作用域中,重定向跳转到index.jsp service层(业务逻辑) 1.参数的非空判断 如果参数为空 将状态码、提示信息、回显数据设置到消息模型中,返回消息模型对象 2.调用dao层的查询方法,通过用户名去查询用户对象 3.判断用户对象是否为空 如果为空,将状态码、提示信息、回显数据设置到消息模型中,返回消息模型对象 4.判断数据库中查询到的用户密码与前台传递来的密码作比较 如果不相等,将状态码、提示信息、回显数据设置到消息模型中,返回消息模型对象 5.登陆成功,将成功状态、提示信息、用户对象设置消息模型对象,并return mapper层(Dao层) 定义对应的接口 ------------------------------------------------------------------------------------------------------------------------ *注册功能 思路 1. 接收客户端的请求(接受参数:姓名、密码、年龄) 2. 参数的非空判断 如果参数为空,通过消息模型对象返回结果(设置状态、设置提示信息、回显数据) 将消息模型设置到request作用域中 请求转发跳转到注册页面 return 3.通过用户姓名查询用户对象 4.判断用户对象是否为空 如果不为空,通过消息模型对象返回结果(设置状态、设置提示信息、回显数据) 将消息模型设置到request作用域中 请求转发跳转到注册页面 return 5.将前台传递的用户数据插入到数据库 添加用户成功 将用户信息设置到session作用域中 重定向跳转到首页 controller层(接收请求,响应结果) 1.接收客户端的请求(接受参数:姓名、密码、年龄) 2.调用service层的方法,返回消息模型对象 3.判断消息模型状态 如果状态码是失败 将消息模型对象设置到request作用域中,请求转发跳转到register.jsp 如果状态码是成功 将消息模型对象设置到session作用域中,重定向跳转到login.jsp service层(业务逻辑) 1.参数的非空判断 如果参数为空 将状态码、提示信息、回显数据设置到消息模型中,返回消息模型对象 2.调用dao层的查询方法,通过用户名去查询用户对象 3.判断用户对象是否为空 如果不为空,将状态码、提示信息、回显数据设置到消息模型中,返回消息模型对象 如果为空,将参数插入到数据库中,手动提交事务 4.注册成功,将成功状态、提示信息、用户对象设置消息模型对象,并return mapper层(Dao层) 定义对应的接口 ``` 项目结构思想:分层思想(解耦:高内聚低耦合) controller层 接受请求 (调用service层,返回结果) 响应结果 service层 业务逻辑 mapper 接口类 mapper.xml mybatis与数据库的相关操作 entity(po、model) JavaBean实体 util 工具类(通用的方法/类) test 测试类/方法