- Service层业务逻辑实现
由于在笔记一中已经完成了底层的搭建,所以可以直接上手service层代码的编写
-
在service包下创建AdminService业务逻辑层代码
package com.zcl.service; import com.zcl.pojo.Admin; 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; @Service public class AdminServiceImpl implements AdminService { // 在业务逻辑层中,一定会有数据访问层的对象 @Autowired AdminMapper adminMapper; @Override public Admin login(String name, String pwd) { // 根据闯入的用户名或到DB中查询相应用户对象 // 如果有条件,则一定要创建AdminExample的对象,用来封装条件 AdminExample example = new AdminExample(); example.createCriteria().andANameEqualTo(name); Listlist = 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; @Controller @RequestMapping("/admin") public class AdminAction { // 所有的控制器,都一定会有Service层的对象 @Autowired AdminService 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
- 登录后可以正常访问商品管理了



