【JavaWeb】日程管理系统 添加Ajax注册校验 第四期


注册校验 :

还存在的问题:
当校验不通过时 , 表单依旧能够提交
之后使用VUE 的 axios 结合 promise 处理

需求:

注册提交前校验用户名是否占用功能

使用 后端 传递JSON 的方式 原因:

  • 解决响应乱码问题
  • 规范响应信息格式
    • 后端响应信息建立统一的格式:
    • 响应一个JSON
      {
      “code”:“200 505… 就是自定义的业务状态码 用于说明这次的业务请求状态”
      “message”: “针对业务状态码的补充说明/描述”
      “data”:“{}” 本次响应的数据 成功/不成功 List<Schedule>

      }

业务码 响应: 成功 200
2

业务码 响应: 被占用 505
3

客户端代码编写处理 :

regist.html页面代码

主要代码:

<script>
  function checkUsername() {
     
     
            var usernameReg = /^[a-zA-Z0-9]{5,10}$/
            var usernameInput = document.getElementById("usernameInput")
            var username = usernameInput.value
            var usernameMsg = document.getElementById("usernameMsg")
            if (!usernameReg.test(username)) {
     
     
                usernameMsg.innerText = "格式有误"
                return false
            }
            // Ajax 验证 用户名 是否已被占用
            let request = new XMLHttpRequest();
            // 设置回调函数 对响应回来的数据进行处理
            request.onreadystatechange = function () {
     
     
                if (request.readyState == 4 && request.status == 200) {
     
     
                    // usernameMsg.innerText = request.responseText;
                    //接收 服务端响应回来的JSON
                    let result = JSON.parse(request.responseText);
                    // 返回的code 业务码不为200 即失败 用户名已存在
                    if (result.code != 200) {
     
     
                        usernameMsg.innerText = "不可用"
                    }
                }
            }

            // 设置请求方式 以及 请求目标资源的路径
            request.open("GET", "/user/checkUsernameUsed?username=" + username)
            request.send();

            usernameMsg.innerText = "OK"
            return true
        }
        </script>

服务端代码处理 :

公共工具类:
2

定义业务码格式的枚举类

package com.doug.wake.common;

/**
 * 业务含义和状态码对应关系的枚举
 *
 */
public enum ResultCodeEnum {
   
   
    /**
     * 成功 200
     */
    SUCCESS(200,"success"),
    USERNAME_ERROR(501,"usernameError"),
    PASSWORD_ERROR(503,"passwordError"),
    NOTLOGIN(504,"notLogin"),
    USERNAME_USED(505,"userNameUsed")
    ;

    private Integer code;
    private String message;
    private ResultCodeEnum(Integer code, String message) {
   
   
        this.code = code;
        this.message = message;
    }
    public Integer getCode() {
   
   
        return code;
    }
    public String getMessage() {
   
   
        return message;
    }
}

添加公共的JSON数据响应格式工具类

package com.doug.wake.common;

/**
 * 全局统一响应的JSON格式处理类
 */
public class Result<T> {
   
   
    // 返回码
    private Integer code;
    // 返回消息
    private String message;
    // 返回数据
    private T data;

    public Result() {
   
   
    }

    // 返回数据
    protected static <T> Result<T> build(T data) {
   
   
        Result<T> result = new Result<T>();
        if (data != null) {
   
   
            result.setData(data);
        }
        return result;
    }

    public static 
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值