SSM米米商城项目笔笔记二(登录业务逻辑实现)
米米商城项目笔笔记二(登录业务逻辑实现)
Service层业务逻辑实现
由于在笔记一中已经完成了底层的搭建,所以可以直接上手
service
层代码的编写在
service
包下创建AdminService
业务逻辑层代码package com.zcl.service;import com.zcl.pojo.Admin;/*** 项目名称:mimissm* 描述:登录业务逻辑层判断** @author zhong* @date 2022-05-12 10:55*/ public interface AdminService {Admin login(String name,String pwd); }
同包下创建
impl
包并创建AdminServiceImpl
接口实现类创建实现类之后一定到使用注解
@Service
注解,将当前的业务逻辑层的创建对象交给spring,项目启动的时候就会为我们创建对象在业务逻辑层一定会使用到
mapper
层的数据库访问,使用注解@Autowired
容器创建mapper的对象package com.zcl.service.impl;import com.zcl.mapper.AdminMapper; import com.zcl.pojo.Admin; import com.zcl.pojo.AdminExample; import com.zcl.service.AdminService; import com.zcl.utils.MD5Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;/*** 项目名称:mimissm* 描述:登录业务逻辑层的实现类** @author zhong* @date 2022-05-12 10:56*/ @Service public class AdminServiceImpl implements AdminService {// 在业务逻辑层中,一定会有数据访问层的对象@AutowiredAdminMapper adminMapper;/*** 登录业务逻辑实现* @param name* @param pwd* @return*/@Overridepublic Admin login(String name, String pwd) {// 根据闯入的用户名或到DB中查询相应用户对象// 如果有条件,则一定要创建AdminExample的对象,用来封装条件AdminExample example = new AdminExample();/**添加用户名a_name条件* select * from admin where a_name = 'admin'*/example.createCriteria().andANameEqualTo(name);List<Admin> list = adminMapper.selectByExample(example);//判断是否查询搭配数据if(list.size() > 0){Admin admin = list.get(0);// 因为密码存储的是密文形式,需要将对比的密码进行同算法加密再跟查询出的数据密码进行对比String md5 = MD5Util.getMD5(pwd);if(md5.equals(admin.getaPass())){return admin;}}return null;} }
对于封装
example
数据可能不是很清除,多看两会就好了
Controller层开发
- 在
controller
包下创建AdminAction
登录控制器 - 在控制器类上使用注解
@Controller
告诉spring这是一个控制器【很重要】 - 在控制器类上使用注解
@RequestMapping()
设置访问控制器的路径 - 在方法上也使用上面3的注解设置访问路径
- 控制器需要接收登录名称和登录密码,所以查看登录表单的
name
属性,控制器上的接收参数一定要对应上,否则无法接受数据 - 登录成功之后还需要返回登录的用户信息展示在登录成功的页面或登录失败的提示,所以需要使用到
HttpServletRequest
传递数据
package com.zcl.controller;import com.zcl.pojo.Admin; import com.zcl.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;/*** 项目名称:mimissm* 描述:登录控制器** @author zhong* @date 2022-05-12 14:43*/ @Controller @RequestMapping("/admin") public class AdminAction {// 所有的控制器,都一定会有Service层的对象@AutowiredAdminService adminAction;@RequestMapping("login")public String login(String name, String pwd, HttpServletRequest request){Admin admin = adminAction.login(name, pwd);// 判断是否有数据if(admin!=null){request.setAttribute("admin",admin);return "main";}else{request.setAttribute("errmsg","用户名或密码错误请检查");return "login";}} }
- 在
TomCat部署服务器
- 方式一:本地服务器
- 方式二:pox.xml集成服务器
- 启动项目:访问http://localhost:8080/admin/login.jsp
- 登录后可以正常访问商品管理了
SSM米米商城项目笔笔记二(登录业务逻辑实现)相关推荐
- SSM米米商城项目笔笔记五(商品信息多条件查询)
SSM米米商城项目笔笔记五(商品信息多条件查询) 1.当查询的条件没有数据时,点击查询会展示出所有的上商品信息 2.当输入商品的模糊信息时,就会展示带有模糊信息的数据 3.当选中商品类型的时候就根据类 ...
- Vue PC商城项目开发笔记与问题汇总
Vue PC商城项目开发笔记与问题汇总 负责PC端商城项目,这也是人生第一个真正的项目.刚做了一天,就遇到不少问题,在这里列出自己的问题与解决办法,与大家交流,提升自己,希望以后不会掉进同一个坑里. ...
- spring boot 前后端分离项目(商城项目)学习笔记
spring boot 前后端分离项目(商城项目)学习笔记 目录 spring boot 前后端分离项目(商城项目)学习笔记 后端配置 springboot项目 pom.xml文件 maven 配置文 ...
- SSM框架项目【米米商城】18-25 登录业务逻辑的实现
开始时间:2022-03-02 课程链接:米米商城 mybatis逆向工程 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代 ...
- Django 20购物商城项目(注册、登录页面:生成动态验证码)
dDjango 20购物商城项目 1.安装pillow 2.在注册页面加入验证码 2.1.register.html (增加内容) 2.2.register.js(增加内容) 2.2.路由.视图(增加 ...
- 笔记三:Maven+SSM之网络商城项目开始
先看一下总体的文件存放示意图: step1.导包,porm.xml具体文件为内容为: <project xmlns="http://maven.apache.org/POM/4.0.0 ...
- vue3小兔鲜商城项目学习笔记+资料分享01
最近正在学习vue3小兔鲜,需要相关学习资料的可以点链接 https://docs.qq.com/doc/DUmhUVERtUHpLaG1a 下面试学习笔记 项目起步 项目预览地址 小兔鲜儿商城:ht ...
- 网上图书商城项目学习笔记-034订单管理
一.流程分析 二.代码 1.view层 (1)list.jsp 1 <body> 2 <p class="pLink"> 3 <a href=&quo ...
- 谷粒商城项目学习笔记一
1.项目简介 1.1.项目背景 1.1.1.电商模式 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O 1.B2B模式 B2B(Business to Business),是指商家与 ...
最新文章
- jsp 防止sql注入 之 preparestatement篇(转载)
- 为什么使用NoSql及NoSql的优点
- 360的服务器在哪个文件夹,如何卸载服务器上顽固的360
- matplotlib.pyplot.figure
- 使用WinIO库实现保护模式下的IO和内存读写(_inp,_outp)
- DMX512协议是什么 DMX512数字灯光控制系统介绍
- 【转】【信息学奥赛一本通】题解目录
- 工业镜头、相机的结构、参数解释及选型指南
- [Error] invalid operands to binary ^ (have ‘double‘ and ‘float‘)
- 阿里双十一数据库技术
- 有关Android插件化思考
- linux mt命令,几种操作系统mt命令比较
- Linux系统增加新硬盘
- 《Python编程:从入门到实践》基础知识部分笔记和作业
- OLED屏显示和汉字点阵编码原理
- linux curl命令详解,以及实例
- 阿里云服务器优惠以及采购流程
- #编译原理# 概论(一)
- Nuxt之Meta标签关键字描述之description重复问题
- call(),apply()和bind()的区别和应用以及扩展