SpringBoot新闻头条:登陆功能、分类模块的实现

SpringBoot新闻头条:登陆功能、分类模块的实现


接着上一篇编写


  1. 登录功能

    • 密码加密

      • 在templates目录下创建admin目录,并添加login.html(简单的登陆界面)

                 <form class="ui large form" method="post" action="#" th:action="@{/admin/login}">
                   <div class="ui  segment">
                     <div class="field">
                       <div class="ui left icon input">
                         <i class="user icon"></i>
                         <input type="text" name="username" placeholder="用户名">
                       </div>
                     </div>
                     <div class="field">
                       <div class="ui left icon input">
                         <i class="lock icon"></i>
                         <input type="password" name="password" placeholder="密码">
                       </div>
                     </div>
                     <button class="ui fluid large teal submit button">登   录</button>
                   </div>
        
                   <div class="ui error mini message"></div>
                   <!-- #strings thymeleaf提供的内置对象 -->
                   <!-- message 不为空 意味着登录不成功 -->
                   <div class="ui mini negative message" th:unless="${#strings.isEmpty(message)}" th:text="${message}"></div>
        
                 </form>
        
        
      • 修改index页面

        <!--中间内容-->
        <div  class="m-container-small m-padded-tb-big">
          <div class="ui container">
            <div class="ui success large  message">
              <h3>Hi,</h3>
              <p th:text="|${session.user.username}, 欢迎登录|">hualili</p>
            </div>
        
            <img src="../static/images/wechat.jpg" alt="" class="ui rounded bordered fluid image">
          </div>
        </div>
        
      • 在web目录下创建admin目录,并在admin目录下创建adminController控制器

        package com.myspringboot.demo.web.admin;
        
        import com.myspringboot.demo.entity.User;
        import com.myspringboot.demo.service.UserService;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.stereotype.Controller;
        import org.springframework.web.bind.annotation.GetMapping;
        import org.springframework.web.bind.annotation.PostMapping;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RequestParam;
        import org.springframework.web.servlet.mvc.support.RedirectAttributes;
        
        import javax.servlet.http.HttpSession;
        
        @Controller
        @RequestMapping("/admin")
        public class adminController {
                 
            @Autowired
            UserService userService;
        
            @GetMapping
            public String loginPage() {
                 
                return "admin/login";
            }
        
            @PostMapping("/login")
            public String login(@RequestParam String username,
                                @RequestParam String password,
                                HttpSession session,
                                RedirectAttributes attributes) {
                 
                User user = userService.checkUser(username, password);
                // 当用户登录成功
                if (user != null) {
                 
                    // 消除用户的敏感数据(密码)
                    user.setPassword(null);
                    session.setAttribute("user", user);
                    return "index";
                } else {
                   // 当登录不成功时
                    attributes.addFlashAttribute("message", "用户名或密码错误");
                    return "redirect:/admin";
                }
            }
        }
        
        • 修改Controll类

          package com.myspringboot.demo.web;
          
          import org.springframework.stereotype.Controller;
          import org.springframework.web.bind.annotation.GetMapping;
          
          @Controller
          public class Controll {
                     
              @GetMapping("/")
              public String index1() {
                     
                  return "admin/login";
              }
              @GetMapping("/index")
              public String index2() {
                     
                  return "index";
              }
          
          }
          
          
      • 在com.myspringboot.demo目录下创建service目录,并创建UserService接口业务层,创建lmpl/UserServiceImpl实现类

        UserService接口

        package com.myspringboot.demo.service;
        
        import com.myspringboot.demo.entity.User;
        
        public interface UserService {
                 
            User checkUser(String username, String password);
        }
        

        UserServiceImpl实现类

        package com.myspringboot.demo.service.lmpl;
        
        import com.myspringboot.demo.entity.User;
        import com.myspringboot.demo.repository.UserRepository;
        import com.myspringboot.demo.service.UserService;
        import com.myspringboot.demo.utils.MD5Utils;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.stereotype.Service;
        
        @Service
        public class UserServicelmpl implements UserService {
                 
            @Autowired
            UserRepository userRepository;
        
            @Override
            public User checkUser(String username, String password) {
                 
                User user = userRepository.findByUsernameAndPassword(us
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值