人事管理系统3

退出功能

AuserController.java
@GetMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();
return "redirect:/admin/userlogin";
}

验证码登录

添加验证码依赖:

<!-- 验证码 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-captcha</artifactId>
<version>5.8.7</version>
</dependency>
Hutool是一款优秀的国内开源工具类库,提供以下组件:
hutool-aop:
JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter:
布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache:
简单缓存实现
hutool-core:
核心,包括Bean操作、日期、各种Util
hutool-cron:
定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto:
加密解密模块,提供对称、非对称和摘要算法封装
hutool-db:
JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa:
基于DFA模型的多关键字查找
hutool-extra:
扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、 FTP、分词等)
hutool-http:
基于HttpUrlConnectionHttp客户端封装
hutool-log:
自动识别日志实现的日志门面
hutool-script:
脚本执行封装,例如Javascript
hutool-setting:
功能更强大的Setting配置文件和Properties封装
hutool-system:
系统参数调用封装(JVM信息等)
hutool-json:
JSON实现
hutool-captcha:
图片验证码实现
hutool-poi:
针对POIExcelWord的封装
hutool-socket:
基于JavaNIOAIOSocket封装
hutool-jwt
JSON Web Token (JWT)封装实现
添加验证码类VerifyCodeController
@Controller
public class VerifyCodeController {
@GetMapping("/util/verifycode")
public void defaultKaptcha(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws Exception {
httpServletResponse.setHeader("Cache-Control", "no-store");
httpServletResponse.setHeader("Pragma", "no-cache");
httpServletResponse.setDateHeader("Expires", 0);
httpServletResponse.setContentType("image/png");
ShearCaptcha shearCaptcha= CaptchaUtil.createShearCaptcha(150, 30, 4,
2);
// 验证码存入session
httpServletRequest.getSession().setAttribute("verifyCode",
shearCaptcha);
// 输出图片流
shearCaptcha.write(httpServletResponse.getOutputStream());
}
}
修改login.html页面:
<input name="verifyCode" lay-verify="required" placeholder="请输入验证码"
type="text" class="layui-input" >
<img title="单击图片刷新!" style="cursor:pointer" th:src="@{/util/verifycode}"
onclick="this.src='/util/verifycode'"/>


layui.config({
base: '/js/'
}).use(['form', 'layer'], function () {
var form = layui.form,
layer = layui.layer
});
修改AuserController.java
@PostMapping("/userlogin")
public String login(@RequestParam("username") String name,
@RequestParam("password") String pwd, @RequestParam("verifyCode") String
verifyCode,HttpSession session) {
if (!StringUtils.hasText(name) || !StringUtils.hasText(pwd)) {
session.setAttribute("errorMsg", "用户名或密码不能为空");
return "admin/login";
}
if (!StringUtils.hasText(verifyCode)) {
session.setAttribute("errorMsg", "验证码不能为空");
return "admin/login";
}
ShearCaptcha shearCaptcha = (ShearCaptcha)
session.getAttribute("verifyCode");
if (shearCaptcha == null || !shearCaptcha.verify(verifyCode)) {
session.setAttribute("errorMsg", "验证码错误");
return "admin/login";
}
Auser auser = auserService.userlogin(name, pwd);
if (auser != null) {
session.setAttribute("name",auser.getName());
return "redirect:/admin/sys_index"; //return "admin/index";
} else {
session.setAttribute("errorMsg", "登录失败");
return "admin/login";
}
}

用户信息修改

加入用户信息编辑页面userInfo-edit.htmlstatic/images存放默认用户头像图片user.jpg
修改数据库auser表的userimg字段默认值:'/images/user.jpg'
AuserController.java重定向到用户首页之前把用户名信息存入session
session.setAttribute("name", auser.getName());
session.setAttribute("pwd", auser.getPwd());
session.setAttribute("userimg", auser.getUserimg());
index.html页头获取用户头像地址进行显示:
<img th:src="${session.userimg}" class="layui-nav-img">
AuserController.java
@GetMapping("/userInfo")
public String gotoUserInfo() {
return "admin/userInfo-edit";
}

修改密码

AuserController.java判断输入的旧密码是否正确:

@GetMapping("/password")
@ResponseBody //方法返回值转化为HTTP响应的内容
public boolean validatePassword(String oldPwd, HttpSession session) { //参数名与请
求参数名一致时可以不写@RequestParam
String sys_pwd = session.getAttribute("pwd").toString();
String input_oldpwd = MD5Util.MD5Encode(oldPwd, "UTF-8");
if(sys_pwd.equals(input_oldpwd)) {
return true;
}
return false;
}
AuserMapper.java中有自动生成的接口方法可调用:
boolean updateByPrimaryKeySelective(Auser record);
AuserService.java增加更新用户信息的方法:
boolean updateUser(String name, String pwd, String userimg);
AuserServiceImpl.java
public boolean updateUser(String name, String pwd, String userimg) {
Auser auser=new Auser();
auser.setName(name);
auser.setPwd(pwd);
auser.setUserimg(userimg);
return auserMapper.updateByPrimaryKeySelective(auser);
}
AuserController.java修改密码:
@PostMapping("/userInfo")
@ResponseBody
public boolean userInfoUpdate(@RequestParam("newPwd") String pwd, HttpSession
session) {
return auserService.updateUser(
session.getAttribute("name").toString(),
MD5Util.MD5Encode(pwd, "UTF-8"),
session.getAttribute("userimg").toString()
);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值