尚筹网:登录功能

登录流程分析

在这里插入图片描述

handler方法

在这里插入图片描述
所在工程: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
文件位置:
在这里插入图片描述
内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>❤汇聚点滴的力量,成就非凡的伟业❤</title>
</head>
<body>
	<h1>后台主页面</h1>
	${sessionScope['LOGIN-ADMIN'] }
</body>
</html>

在这里插入图片描述

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"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值