You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hotelbook-JavaWeb-master/src/webapp/insertLogin.jsp

182 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ page contentType="text/html;charset=UTF-8" %>
<!-- JSP页面指令设置页面内容类型为text/html即HTML格式页面并指定字符编码为UTF-8
保证页面能正确显示各类字符,避免出现乱码情况 -->
<html>
<head>
<!-- 设置HTML页面的字符编码为utf-8虽然前面JSP指令已经设置了编码但这里在HTML部分再次声明
可以增强浏览器对页面字符编码的识别和处理,确保内容正确显示 -->
<meta charset="utf-8">
<!-- 设置页面的标题为“注册账户”,此标题会显示在浏览器的标题栏中,让用户清楚当前页面的功能 -->
<title>注册账户</title>
<!-- 引入Layui框架的样式文件layui.csshref属性指定了文件的相对路径当前目录下的js/layui/css/layui.css
media="all"表示该样式适用于所有的媒体类型,也就是在各种设备上都应用此样式 -->
<link rel="stylesheet" href="./js/layui/css/layui.css" media="all">
<!-- 引入Layui框架的JavaScript脚本文件layui.js该文件包含了Layui框架的各种功能实现
是后续使用Layui组件和功能的基础路径为当前目录下的js/layui/layui.js -->
<script src="./js/layui/layui.js"></script>
<!-- 引入jQuery库的JavaScript脚本文件jquery.jsjQuery常用于操作DOM元素、处理事件、进行AJAX交互等
方便简化JavaScript编程这里的路径指向当前目录下的js/jquery.js -->
<script src="./js/jquery.js"></script>
<!-- 引入自定义的全局JavaScript脚本文件global.js里面可能包含了项目中通用的函数、变量或者其他自定义逻辑
路径为当前目录下的js/global.js -->
<script src="./js/global.js"></script>
</head>
<body>
<!-- 创建一个<fieldset>元素用于对表单等相关元素进行分组显示添加了Layui的样式类设置了顶部外边距为10px
让页面布局更清晰美观 -->
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 10px;">
<!-- 在<fieldset>内部使用<legend>元素来为分组设置标题,这里标题为“注册用户”,起到说明该分组内容的作用 -->
<legend>注册用户</legend>
</fieldset>
<!-- 创建一个Layui风格的表单通过class="layui-form"应用Layui的表单样式和相关交互功能action属性为空
表示表单提交的地址暂未设置后续可能通过JavaScript动态指定或者在服务器端进行统一处理等 -->
<form class="layui-form" action="">
<!-- 创建一个Layui表单项目layui-form-item用于组织表单内的各个输入元素等内容使得表单结构更清晰 -->
<div class="layui-form-item">
<!-- 创建一个内联的布局容器layui-inline方便在一行内放置多个表单元素实现更灵活的布局 -->
<div class="layui-inline">
<!-- 创建一个表单标签元素layui-form-label用于显示对应输入框的说明文字这里显示“账户名” -->
<label class="layui-form-label">账户名</label>
<!-- 创建一个内联的输入框容器layui-input-inline用于放置具体的输入框元素 -->
<div class="layui-input-inline">
<!-- 创建一个文本输入框input type="text"设置了输入框的名称name="loginName")用于表单提交时传递参数,
lay-verify属性指定了验证规则这里要求必须输入且符合自定义的inputName规则autocomplete="off"关闭浏览器的自动完成功能,
placeholder属性设置了输入框的占位提示文字“您登录所需的账户”同时应用了Layui的输入框样式类layui-input -->
<input type="text" name="loginName" lay-verify="required|inputName" autocomplete="off"
placeholder="您登录所需的账户" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline">
<!-- 创建一个密码输入框input type="password"设置名称为“loginPwd”指定了验证规则required|inputPwd
关闭自动完成功能设置占位提示文字“您登录所需的密码”应用Layui输入框样式并且给该输入框设置了id为“pwd1”方便后续在JavaScript中通过id获取其值 -->
<input type="password" name="loginPwd" id="pwd1" lay-verify="required|inputPwd" autocomplete="off"
placeholder="您登录所需的密码" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-inline">
<!-- 创建另一个密码输入框,用于用户再次输入密码进行确认,设置了验证规则,关闭自动完成,设置占位提示文字,
同样应用Layui样式其id为“pwd2”方便后续与前面输入的密码进行比较验证 -->
<input type="password" id="pwd2" lay-verify="required|inputPwd" autocomplete="off"
placeholder="重复你所输入的密码" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">昵称</label>
<div class="layui-input-inline">
<input type="text" name="loginNickName" lay-verify="required|inputName" autocomplete="off"
placeholder="您的个性昵称" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<!-- 创建一个Layui风格的按钮layui-btn设置了lay-submit属性表示该按钮用于触发表单提交操作
lay-filter属性指定了一个过滤器名称insertRome用于在JavaScript中监听该按钮的提交事件按钮文字为“注册” -->
<button class="layui-btn" lay-submit lay-filter="insertRome">注册</button>
<!-- 创建一个重置按钮type="reset"样式为Layui的默认按钮样式layui-btn layui-btn-primary
点击该按钮可将表单内的输入框等元素恢复到初始状态 -->
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script>
// 使用Layui框架的模块加载机制加载['form', 'layedit', 'laydate']这几个模块,
// 并在加载完成后执行回调函数,在回调函数内可以使用这些模块提供的功能,
// 这里主要是使用form模块来处理表单相关操作layer模块用于弹出提示框等交互功能
layui.use(['form', 'layedit', 'laydate'], function () {
var form = layui.form,
layer = layui.layer;
// 自定义验证规则通过form.verify方法来定义下面分别针对inputName和inputPwd规则进行具体的验证逻辑设置
form.verify({
inputName: function (value) {
// 验证账户名长度如果输入的字符长度小于4个字符返回错误提示信息“账户至少4个字符”
// 阻止表单提交,提示用户输入符合要求长度的账户名
if (value.length < 4) {
return '账户至少4个字符';
}
// 如果输入的字符长度大于10个字符返回错误提示信息“账户至多10个字符”同样阻止表单提交
// 要求用户输入合理长度的账户名
if (value.length > 10) {
return '账户至多10个字符'
}
},
inputPwd: function (value) {
// 验证密码长度当输入的密码字符长度小于4个字符时返回“密码至少4个字符”的提示信息
// 让用户知晓密码长度不符合要求,无法提交表单
if (value.length < 4) {
return '密码至少4个字符';
}
// 如果密码字符长度大于18个字符返回“密码至多18个字符”的提示信息提醒用户修改密码长度
// 只有密码长度符合要求才能进行后续的表单提交操作
if (value.length > 18) {
return '密码至多18个字符'
}
}
});
// 监听表单的提交事件通过form.on方法监听指定过滤器lay-filter="insertRome")对应的提交操作,
// 当点击注册按钮触发提交且符合验证规则会执行这个回调函数data参数包含了表单提交的数据等相关信息
form.on('submit(insertRome)', function (data) {
// 通过jQuery选择器$("#pwd1")获取id为“pwd1”的密码输入框元素并获取其输入的值存储在变量pwd1中
// 该值为用户第一次输入的密码
var pwd1 = $("#pwd1").val();
// 同样的方式获取id为“pwd2”的密码输入框元素的值存储在变量pwd2中用于和pwd1进行比较验证
var pwd2 = $("#pwd2").val();
// 比较两次输入的密码是否一致如果不一致通过layer.msg方法弹出提示框显示“二次密码验证不一致”的提示信息
// 告知用户需要重新输入密码,确保两次密码相同才能进行注册操作
if (pwd1!= pwd2) {
layer.msg("二次密码验证不一致");
} else {
// 如果两次密码一致使用jQuery的$.post方法进行异步POST请求向服务器端发送数据
// baseUrl + '/InsertLoginServlet'是请求的URL地址baseUrl可能是在全局变量中定义的基础地址
// InsertLoginServlet应该是服务器端用于处理注册逻辑的Servlet等程序
// JSON.stringify(data.field)将表单提交的数据经过Layui处理后的字段数据转换为JSON字符串格式发送给服务器
// 最后在请求成功的回调函数中根据服务器返回的code值进行不同的提示处理
$.post(baseUrl + '/InsertLoginServlet', JSON.stringify(data.field), function (code) {
if (code === 1) {
// 如果服务器返回的code值为1表示注册成功通过layer.alert方法弹出一个提示框
// 设置标题为“成功”图标为6表示成功的图标样式动画效果为5告知用户注册成功
layer.alert('注册成功!', {
title: '成功',
icon: 6,
anim: 5
});
} else {
// 如果服务器返回的code值不为1表示注册失败同样弹出提示框设置标题为“异常”图标为5表示失败的图标样式
// 动画效果为6向用户提示注册失败的信息让用户知晓操作未成功
layer.alert('注册失败!', {
title: '异常',
icon: 5,
anim: 6
});
}
});
}
// 返回false表示阻止表单的默认提交行为因为这里通过异步请求$.post已经自行处理了提交相关的数据交互
// 不需要浏览器再进行默认的表单提交刷新页面等操作
return false;
});
});
</script>
</body>
</html>