ems-jsp 用户登录模块

整体思路

1.登录首先要从前端获取账号和密码

2.根据用户名去查询用户,用户存在 比对密码(注意 由于密码是加密存入数据库的 所以比对时要用用户输入的密码加密后跟数据库中的密码比对)。

   用户不存在,登陆失败,返回登录界面并且显示失败原因。

代码:展示部分

Controller层:

复制代码
@RequestMapping("login")
    public String login(String username,String password,HttpSession session) throws UnsupportedEncodingException {
        log.debug("接收到的用户名:{},接受到的密码是:{}",username,password);
        //1.根据用户名去查询用户
        try {
            User user = userService.login(username,password);
            //登录成功
            session.setAttribute("user",user);
        } catch (Exception e) {
            e.printStackTrace();
            return "redirect:/login.jsp?msg="+URLEncoder.encode(e.getMessage(),"UTF-8");
        }

        return "redirect:/employee/list";
    }
复制代码

sevice层实现:

复制代码
    @Override
    public User login(String username, String password) {
        //1.根据用户输入的用户名查询数据中是否存在
        User user = userDao.findByUserName(username);
        //2.判断对象是否存在
        if(ObjectUtils.isEmpty(user)) throw new RuntimeException("用户名输入错误!");
        //3.判断密码的正确性
        String digestPassword = DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8));
        if(!user.getPassword().equals(digestPassword)) throw new RuntimeException("密码输入错误!");
        return user;
    }
复制代码

页面:

 

 

posted @   神行乌龟  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2023-03-04 每日总结--2023/3/4
2023-03-04 本周课程作业--查询连接最长单词
点击右上角即可分享
微信分享提示