当前位置: 首页 > news >正文

民宿管理系统4

退出功能的实现

退出的原理:让session失效即可

@GetMapping("/logout")//GetMapping没有参数传public String logout(HttpSession session) {//退出原理:session失效session.invalidate();//清除所有的sessionreturn "redirect:/admin/userlogin";//重定向}

 点击“退出登录”后会返回登录界面

修改登录名:

点击“修改登录名”,有弹窗显示

前端代码

<body><div class="layui-fluid" style="padding: 65px;margin: 50px auto;"><div class="layui-row"><div class="layui-form"><!--      <div class="layui-form-item">-->
<!--        <label for="L_oldgname" class="layui-form-label">-->
<!--          <span class="x-red">*</span>旧的登录名</label>-->
<!--        <div class="layui-input-inline">-->
<!--          <input type="text" id="L_oldgname" name="oldgname" lay-verify="required|oldganme" class="layui-input">-->
<!--        </div>-->
<!--      </div>--><div class="layui-form-item"><label for="L_newgname" class="layui-form-label"><span class="x-red">*</span>新的登录名</label><div class="layui-input-inline"><input type="text" id="L_newgname" name="newgname" lay-verify="required|newgname" class="layui-input"></div></div><!--      <div class="layui-form-item">-->
<!--        <label for="L_confirmgname" class="layui-form-label">-->
<!--          <span class="x-red">*</span>确认登录名</label>-->
<!--        <div class="layui-input-inline">-->
<!--          <input type="text" id="L_confirmgname" name="confirmgname" lay-verify="required|confirmgname" class="layui-input">-->
<!--        </div>-->
<!--      </div>--><div class="layui-form-item"><label for="inputpassword" class="layui-form-label"><span class="x-red">*</span>输入密码</label><div class="layui-input-inline"><input type="password" id="inputpassword" name="inputpassword" lay-verify="required|inputPwd" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label"></label><button class="layui-btn" lay-filter="submit" lay-submit="">保存</button></div></div></div>
</div><script>layui.use(['form', 'layer', 'upload'], function () {$ = layui.jquery;var form = layui.form,upload = layui.upload,layer = layui.layer;//自定义验证规则form.verify({inputPwd: function (value) {var code;$.ajax({url: "/admin/checkinputpassword",type: "GET",async: false,  //关闭异步,当success返回结果后才执行ajax之后的内容data: {"inputpassword": value},success: function (s) {code = s;}});if (code != true) {return '密码错误,请重新输入!';}},// password: [/(.+){6,12}$/, '密码必须6到12位'],// confirmPwd: function () {//   if ($('#L_newgname').val() != $('#L_confirmgname').val()) {//     return '两次名称不一致';//   }// }});//监听提交form.on('submit(submit)', function (data) {console.log(data.field);$.ajax({url: "/admin/updategname",type: "post",data: data.field,success: function (s) {if (s == true) {layer.alert("修改成功!", {icon: 6}, function () {parent.layer.closeAll();parent.location.href = "/admin/logout";});} else {layer.msg("登录名重复!", function () {});}},error: function () {layer.msg("接口异常!", function () {});}});});});
</script>
</body>

功能实现:

AdminController:

/***修改登录名页面*/@GetMapping("/updategnamepage")public String updategnamepage() {return "admin/updategnamepage";}/*** 修改登录名时,判断输入密码是否正确* @return*/@GetMapping("/checkinputpassword")@ResponseBody //方法返回值转化为HTTP响应的内容public boolean checkinputpassword(@RequestParam("inputpassword") String inputpassword,HttpSession session ) {String gpassword = session.getAttribute("gpassword").toString();return adminService.checkinputpassword(gpassword, inputpassword);}/*** 修改登录名* @param newgname* @param session* @return*/@PostMapping("/updategname")@ResponseBodypublic boolean updategname(@RequestParam("newgname") String newgname,HttpSession session) {String oldgname=session.getAttribute("gname").toString();return adminService.updategname(oldgname,newgname);}

AdminService

/*** 修改登录名时,判断输入密码是否正确*/boolean checkinputpassword(String gpassword, String inputpassword);/*** 修改登录名*/boolean updategname(String oldgname, String newgname);

 

AdminServicelpml

/*** 修改登录名时,判断输入密码是否正确*/@Overridepublic boolean checkinputpassword(String gpassword, String inputpassword) {if(gpassword.equals(inputpassword))return true;else return false;}/*** 修改登录名*/@Overridepublic boolean updategname(String oldgname, String newgname) {String selectname=adminMapper.selectinputname(newgname);if(selectname==null){return adminMapper.updateadmingname(newgname,oldgname);}else return false;}

AdminMapper

/*** 修改登录名时,判断登录名是否重复* @param newgname* @return*/String selectinputname(@Param ("newgname")String newgname);/*** 修改登录名*/boolean updateadmingname(@Param ("newgname")String newgname,@Param ("oldgname")String oldgname);

AdminMapper.xml

  <select id="selectinputname" resultType="java.lang.String">SELECT gname FROM adminWHERE gname = #{newgname}</select>

 

  <update id="updateadmingname">update adminset gname=#{newgname}where gname=#{oldgname}</update>

测试

当输入框为空

当登录名重复时:

 当密码错误时:

修改成功时:

修改密码:

前端代码

<body>
<div class="layui-fluid"  style="padding: 65px;"><div class="layui-row"><div class="layui-form">
<!--            <div class="layui-form-item">-->
<!--&lt;!&ndash;                <label class="layui-form-label">头像</label>&ndash;&gt;-->
<!--&lt;!&ndash;                <div class="layui-inline layui-upload-list">&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash;                    <img class="layui-upload-img" id="userImg" th:src="${session.userimg}">&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;                    &ndash;&gt;-->
<!--&lt;!&ndash;                </div>&ndash;&gt;-->
<!--&lt;!&ndash;                <div class="layui-inline">&ndash;&gt;-->
<!--&lt;!&ndash;                    <button type="button" class="layui-btn" id="choiceImg">选择图片</button>&ndash;&gt;-->
<!--&lt;!&ndash;                    <button type="button" class="layui-btn" id="uploadImg">开始上传</button>&ndash;&gt;-->
<!--&lt;!&ndash;                </div>&ndash;&gt;-->
<!--            </div>--><div class="layui-form-item"><label for="L_userName" class="layui-form-label" >登录名</label><div class="layui-input-inline"><input type="text" id="L_userName" name="gname" class="layui-input" readonly="readonly" th:value="${session.gname}"></div></div><div class="layui-form-item"><label for="L_oldPwd" class="layui-form-label"><span class="x-red" >*</span>旧密码</label><div class="layui-input-inline"><input type="password" id="L_oldPwd" name="oldgpassword" lay-verify="required|oldPwd" class="layui-input"></div></div><div class="layui-form-item"><label for="L_newPwd" class="layui-form-label"><span class="x-red">*</span>新密码</label><div class="layui-input-inline"><input type="password" id="L_newPwd" name="newgpassword" lay-verify="required|confirmPwd" class="layui-input"></div><div class="layui-form-mid layui-word-aux">6到16个字符</div></div><div class="layui-form-item"><label for="L_confirmPwd" class="layui-form-label"><span class="x-red">*</span>确认密码</label><div class="layui-input-inline"><input type="password" id="L_confirmPwd" name="confirmPwd" lay-verify="required|confirmPwd" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label"></label><button class="layui-btn" lay-filter="submit" lay-submit="">保存</button></div></div></div>
</div>
<script>layui.use(['form', 'layer', 'upload'], function () {$ = layui.jquery;var form = layui.form,upload = layui.upload,layer = layui.layer;//选完文件后不自动上传var uploadInst = upload.render({elem: '#choiceImg', url: '/admin/upload/userImg/', auto: false  //true自动上传,不需要提交按钮, bindAction: '#uploadImg'  //指定提交按钮, choose: function (obj) {obj.preview(function (index, file, result) {$('#userImg').attr('src', result);});}, done: function (res) {if (res == true) {return layer.msg('上传成功');} else {return layer.msg('上传失败');}}, error: function () {var uploadErrorText = $('#uploadErrorText');uploadErrorText.html('<span style="color: #ff5722;">上传失败</span> <a class="layui-btn layui-btn-xs upload-reload">重试</a>');uploadErrorText.find('.upload-reload').on('click', function () {uploadInst.upload();});}});//自定义验证规则form.verify({oldPwd: function (value) {var code;$.ajax({url: "/admin/checkgpassword",type: "GET",async: false,  //关闭异步,当success返回结果后才执行ajax之后的内容data: {"oldgpassword": value},success: function (s) {code = s;}});if (code != true) {return '旧密码错误,请重新输入!';}},newgpassword: [/(.+){6,12}$/, '密码必须6到12位'],confirmPwd: function () {if ($('#L_newPwd').val() != $('#L_confirmPwd').val()) {return '两次密码不一致';}}});//监听提交form.on('submit(submit)', function (data) {console.log(data.field);$.ajax({url: "/admin/updategpassword",type: "post",data: data.field,success: function (s) {if (s == true) {layer.alert("修改成功!", {icon: 6}, function () {parent.layer.closeAll();parent.location.href = "/admin/logout";});} else {layer.msg("修改失败!", function () {});}},error: function () {layer.msg("接口异常!", function () {});}});});});
</script>
</body>

功能实现

AdminController:

 /*** 修改密码页面* @return*/@GetMapping("/updategpasswordpage")public String updategpasswordpage() {return "admin/updategpasswordpage";}/*** 修改密码时,判断输入的旧密码是否正确* @param oldgpassword* @param session* @return*/@GetMapping("/checkgpassword")@ResponseBody //方法返回值转化为HTTP响应的内容public boolean checkgpassword(@RequestParam("oldgpassword")String oldgpassword,HttpSession session) {String gpassword = session.getAttribute("gpassword").toString();return adminService.checkgpassword(gpassword, oldgpassword);}/*** 修改密码* @return*/@PostMapping("/updategpassword")@ResponseBodypublic boolean updategpassword(@RequestParam("newgpassword") String newgpassword,HttpSession session) {return adminService.updategpassword(session.getAttribute("gname").toString(),session.getAttribute("gpassword").toString(),newgpassword);}

 

AdminService

/*** 修改密码时,判断输入的旧密码是否正确*/boolean checkgpassword(String gpassword, String oldgpassword);/*** 修改密码*/boolean updategpassword(String ganme, String gpassword, String newgpassword);

AdminServicelpml

 /*** 修改密码时,判断输入的旧密码是否正确*/@Overridepublic boolean checkgpassword(String gpassword, String oldgpassword) {if(gpassword.equals(oldgpassword))return true;else return false;}/*** 修改密码*/@Overridepublic boolean updategpassword(String ganme, String gpassword, String newgpassword) {Admin admin=new Admin();admin.setGname(ganme);admin.setGpassword(newgpassword);return adminMapper.updateadmingpassword(admin);}

AdminMapper

/*** 修改密码*/boolean updateadmingpassword(Admin admin);

AdminMapper.xml

    <update id="updateadmingpassword">update adminset gpassword = #{gpassword,jdbcType=VARCHAR}where gname=#{gname,jdbcType=VARCHAR}</update>

测试

输入框为空时:

旧密码错误时

两次密码不一样时;

修改成功时

 

http://www.xdnf.cn/news/109171.html

相关文章:

  • 基于ESP32 - S3的MD5校验算法的C语言例程
  • 动态显微镜数据分析及AI拓展
  • 字典树(前缀树)的实现(5)0423
  • Linux: 进程的调度
  • spring-session-data-redis使用
  • # 深度学习中的学习率调度:以 PyTorch 图像分类为例
  • 扣子空间试用:生成五一骑行规划+notion文章编写
  • 青少年编程与数学 02-018 C++数据结构与算法 06课题、树
  • 2022 年 9 月青少年软编等考 C 语言七级真题解析
  • 文献分享:广谱性谷蛋白肽-HLA-DQ2.5复合物中和抗体的表征
  • Qt多线程学习初级指南
  • lerobot[act解析]
  • 【浙江大学DeepSeek公开课】走向数字社会:从DeepSeek到群体智慧
  • JDK(Ubuntu 18.04.6 LTS)安装笔记
  • OrbStack 全面介绍:功能、安装与使用指南
  • Java 拦截器完全指南:原理、实战与最佳实践
  • 【Flutter高效开发】GetX指南:一文学会状态管理、路由与依赖注入
  • BEVFormer论文解读
  • 如何实现应用创新:一个实用框架
  • Java 开发瓶颈破局:飞算 JavaAI 如何一站式生成标准化项目结构?
  • 本节课课堂总结
  • kotlin与MVVM结合使用总结(一)
  • 按照文本每行匹配文件复制到指定位置
  • CONDA:用于 Co-Salient 目标检测的压缩深度关联学习(总结)
  • 开源 RAG 引擎:文档理解精准、检索高效、可视化干预灵活,一站式搞定
  • Kappa架构:简化大数据实时流处理的创新方案
  • 【Luogu】动态规划二
  • 2025.4.27机器学习笔记:文献阅读
  • 类和对象(中)
  • Spring AI 会话记忆(笔记)