SpringBoot新闻头条:登陆功能、分类模块的实现
接着上一篇编写
-
登录功能
-
密码加密
-
在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
-
-