六,业务功能:登录
@
目录
编写 AuthController 作为登录控制器
在 demo-module02-component 模块下,的 src/main/java/目录下创建一个名为:
com.rainbowsea.imperial.court.controller 的包,下创建一个名为 AuthController 的类(注意:类上要添加上 @Controller 注解),作为登录控制器处理惩罚
 - package com.rainbowsea.imperial.court.controller;
- import com.rainbowsea.imperial.court.entity.User;
- import com.rainbowsea.imperial.court.service.api.UserService;
- import com.rainbowsea.imperial.court.utils.ImperialCourtConst;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import javax.servlet.http.HttpSession;
- @Controller //
- public class AuthController {
- @Autowired
- private UserService userService;
- @RequestMapping("/auth/login")
- public String doLogin(
- @RequestParam("loginAccount") String loginAccount,
- @RequestParam("loginPassword") String loginPassword,
- HttpSession session,
- Model model
- ) {
- // 1、尝试查询登录信息
- User user = userService.getUserByLogin(loginAccount, loginAccount);
- // 2、判断登录是否成功
- if (user == null) {
- // 登录失败,密码错误
- model.addAttribute("message", ImperialCourtConst.LOGIN_FAILED_MESSAGE);
- // 返回首页重新登录
- // 3、如果登录失败则回到登录页面显示提示消息
- return "index";
- } else {
- // 4、如果登录成功则将登录信息存入 Session 域
- session.setAttribute("loginInfo", user);
- return "target";
- }
- }
- }
复制代码 在 demo-module01-web 模块下的 resources 根路径下的 spring mvc.xml 文件中添加上,对于 com.rainbowsea.imperial.court.controller 包下的控制器的组件扫描。

编写 EmpService 业务处理惩罚
在 demo-module02-component 模块下的,src\main\java 目录下创建一个:com.rainbowsea.imperial.court.service.api包,在该包下创建一个名为 :UserService 的接口。
- package com.rainbowsea.imperial.court.service.api;
- import com.rainbowsea.imperial.court.entity.User;
- public interface UserService {
- User getUserByLogin(String loginAccount, String loginAccount1);
- }
复制代码 在 demo-module02-component 模块下的,src\main\java 目录下创建一个:com.rainbowsea.imperial.court.service.impl包,在该包下创建一个名为 :UserServiceImpl 类并实现 UserService 的接口中的 getUserByLogin( ) 方法。
 - package com.rainbowsea.imperial.court.service.impl;
- import com.rainbowsea.imperial.court.entity.User;
- import com.rainbowsea.imperial.court.entity.UserExample;
- import com.rainbowsea.imperial.court.mapper.UserMapper;
- import com.rainbowsea.imperial.court.service.api.UserService;
- import com.rainbowsea.imperial.court.utils.MD5Util;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- @Service
- @Transactional(readOnly = true) // 事务管理
- public class UserServiceImpl implements UserService {
- @Autowired
- private UserMapper userMapper;
- @Override
- public User getUserByLogin(String loginAccount, String loginPassword) {
- // 1、密码加密
- String encodeLoginPassword = MD5Util.encode(loginPassword);
- // 2、通过 QBC 查询方式封装查询条件
- UserExample example = new UserExample();
- UserExample.Criteria criteria = example.createCriteria();
- criteria.andNameEqualTo(loginAccount).andPasswordEqualTo(loginPassword);
- List<User> users = userMapper.selectByExample(example);
- if (users != null && users.size() > 0) {
- // 3、返回查询结果
- return users.get(0);
- }
- return null;
- }
- }
复制代码
或者是在 spring-persist.xml 中添加组件扫描也可以。
注意:无论是 sping mvc.xml 还是 spring-persist.xml 两者的哪一个都可以,但是其中的一个肯定要添加上 对于 service 业务上的类,的组件扫描。
编写 target.html 登录成功页面显示
在 demo-module01-web 模块下的 webapp\WEB-INF\templates 目录下,创建一个名为 target.html 的前端页面。
- <!DOCTYPE html>
- <html lang="en" xml:th="http://www.thymeleaf.org">
- <head>
- <meta charset="UTF-8">
- <title>登录成功</title>
- </head>
- <body>
- <p th:text="${session.loginInfo}"></p>
- </body>
- </html>
复制代码 启动 Tomcat 服务器,运行测试
测试:输入精确的密码,可否登录成功
测试:输入错误的密码,可否成功
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |