用户登录、注册的简单案例: html+css+MyBatis+Servlet
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
用户登录
一. 用户登录
1. 流程与思路
基本流程
- 用户填写用户名密码提交到Servlet
- 在Servlet使用MyBatis查询数据库验证用户名密码
- 如果正确响应”登录成功“反之响应”登录失败“
详细过程
- 浏览器的请求信息通过HTML中的表单表单的action有servlet地址以HTTP请求报文的形式提交到Tomcat服务器
- 由Tomcat解析HTTP请求报文而后交给Servlet中的Request对象一般使用POST方式将用户名密码放在请求体中
- 提取Request对象中的用户名密码信息
- 通过MyBatis查询数据库并返回user对象判断User对象是否为null不是则成功反之失败
- 查询结果通过Response对象输出响应数据
- 数据通过Tomcat拼接并返回给浏览器
2. 准备环境
- 将前端静态页面html、css、js拷贝到webapp目录
- 创建数据库建表在MyBatis创建User实体类src-main-java-com.abc-User
- 在Maven中导入MyBatis和数据库Driver的坐标
- 创建Mybatis的核心配置文件 mybatis-config.xml, UserMapper.xml映射文件UserMapper代理接口
建库建表
Pojo实体类User
Maven坐标
mybatis核心配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库连接信息 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 关闭SSL安全协议 -->
<property name="url" value="jdbc:mysql://localhost/bjpowernode?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
注意 &后面的amp; 是转义字符
代理接口
创建src-main-java-com.abc-mapper目录
注意mapper代理接口文件和映射文件在同名目录下
sql比较简单这里直接用注释的方法写
多条件查询使用@Param
注解参数的方式
3. 编写
目录
HTML
注意在表单的action
中输入Servlet的地址
Serlvet
用Request对象获取接收到的用户名密码
在doGet中查询mybatis返回查询结果user不为null则正确反之错误
用Response返回字符数据先设置setContentType()避免中文乱码吗然后获取字符输出流writer最后write输出信息
结果直接在浏览器中显示中文
4. 效果
二. 用户注册
1. 基本流程与思路
2. 编写
代理接口
方法1 判断username是否重复
方法2 添加用户名密码到数据库
添加用户时注意这里用的省略添加字段的写法values()
中需要所有字段而id是自增的主键所以填 null 即可
HTML
注意action=servlet的访问路径和method=”post”
Servlet
注意
1.MyBastis在进行添加操作时接口中抽象方法add的参数是 POJO类
需要将要添加的信息封装到POJO类中
2.DML语句提交事务 sqlSession.copmmit()
由Request对象获取用户名密码
然后将用户名密码封装到User对象
MyBatis套路
注意提交事务
将封装的user对象传入add方法
如果返回的为null就添加到数据库
如果返回的不为null就用Response输出提示
3. 效果
数据已添加到数据库