尚筹网:登录功能

登录流程分析

尚筹网:登录功能_第1张图片

handler方法

尚筹网:登录功能_第2张图片
所在工程:atcrowdfunding-admin-2-component
全类名:com.atguigu.crowd.funding.handler.AdminHandler

@RequestMapping("/admin/do/login")
public String doLogin(
		@RequestParam("loginAcct") String loginAcct,
		@RequestParam("userPswd") String userPswd,
		Model model,
		HttpSession session) {
	
	// 调用adminService的login方法执行登录业务逻辑,返回查询到的Admin对象
	Admin admin = adminService.login(loginAcct, userPswd);
	
	// 判断admin是否为null
	if(admin == null) {
		
		model.addAttribute("MESSAGE", "登录账号或密码不正确!请核对后再登录!");
		
		return "admin-login";
	}
	
	session.setAttribute("LOGIN-ADMIN", admin);
	
	return "admin-main";
}

后台主页面

所在工程:atcrowdfunding-admin-1-webui
文件位置:
尚筹网:登录功能_第3张图片
内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>❤汇聚点滴的力量,成就非凡的伟业❤title>
head>
<body>
	<h1>后台主页面h1>
	${sessionScope['LOGIN-ADMIN'] }
body>
html>

尚筹网:登录功能_第4张图片

service方法

@Override
public Admin login(String loginAcct, String userPswd) {
	
	// 根据loginAcct查询数据库
	AdminExample adminExample = new AdminExample();
	
	adminExample.createCriteria().andLoginAcctEqualTo(loginAcct);
	
	// 执行查询
	List<Admin> list = adminMapper.selectByExample(adminExample);
	
	if(!CrowdFundingUtils.collectionEffective(list)) {
		
		// 如果查询结果集合无效,则直接返回null
		return null;
	}
	
	// 获取唯一集合元素
	Admin admin = list.get(0);
	
	// 确认admin不为null
	if(admin == null) {
		
		return null;
	}
	
	// 比较密码
	String userPswdDataBase = admin.getUserPswd();
	
	String userPswdBroswer = CrowdFundingUtils.md5(userPswd);
	
	if(Objects.equals(userPswdBroswer, userPswdDataBase)) {
		
		// 如果两个密码相等那么说明登录能够成功,返回Admin对象
		return admin;
	}
	
	return null;
}

在spring-persist-tx.xml配置文件中加入事务属性配置

<tx:method name="login" read-only="true"/>

你可能感兴趣的:(#,尚筹网)