核心代码是哪一段,指出并给出解释 @Autowired AdminRepository repository; @GetMapping("/loginAdmin") @ResponseBody public String loginAdmin(@RequestParam("phoneOrname") String phoneOrname, @RequestParam("password") String password, HttpServletResponse response) { //这里得phoneOrname代表 手机号或者用户名 System.out.println("执行了登陆查询"); AdminInfo admin = repository.findByPhoneOrUsername(phoneOrname, phoneOrname); log.info("查询到得admininfo={}", admin); if (admin != null && admin.getPassword().equals(password)) { log.info("登录成功的token={}", admin.getAdminId());//用adminid做cookie //有效期2小时 CookieUtil.set(response, GlobalConst.COOKIE_TOKEN, "" + admin.getAdminId(), 7200); return "登录成功"; } else { throw new DianCanException(ResultEnum.LOGIN_FAIL); } } @GetMapping("/logoutAdmin") public String logout(HttpServletRequest request, HttpServletResponse response, ModelMap map) { //1. 从cookie里查询 Cookie cookie = CookieUtil.get(request, GlobalConst.COOKIE_TOKEN); if (cookie != null) { //2. 清除cookie CookieUtil.set(response, GlobalConst.COOKIE_TOKEN, null, 0); } map.put("msg", ResultEnum.LOGOUT_SUCCESS.getMessage()); map.put("url", "/diancan/adimOrder/list"); return "zujian/success"; }
时间: 2023-12-25 13:03:39 浏览: 23
核心代码是:
```
@Autowired
AdminRepository repository;
@GetMapping("/loginAdmin")
@ResponseBody
public String loginAdmin(@RequestParam("phoneOrname") String phoneOrname,
@RequestParam("password") String password,
HttpServletResponse response) {
//这里得phoneOrname代表 手机号或者用户名
System.out.println("执行了登陆查询");
AdminInfo admin = repository.findByPhoneOrUsername(phoneOrname, phoneOrname);
log.info("查询到得admininfo={}", admin);
if (admin != null && admin.getPassword().equals(password)) {
log.info("登录成功的token={}", admin.getAdminId());//用adminid做cookie
//有效期2小时
CookieUtil.set(response, GlobalConst.COOKIE_TOKEN, "" + admin.getAdminId(), 7200);
return "登录成功";
} else {
throw new DianCanException(ResultEnum.LOGIN_FAIL);
}
}
@GetMapping("/logoutAdmin")
public String logout(HttpServletRequest request,
HttpServletResponse response,
ModelMap map) {
//1. 从cookie里查询
Cookie cookie = CookieUtil.get(request, GlobalConst.COOKIE_TOKEN);
if (cookie != null) {
//2. 清除cookie
CookieUtil.set(response, GlobalConst.COOKIE_TOKEN, null, 0);
}
map.put("msg", ResultEnum.LOGOUT_SUCCESS.getMessage());
map.put("url", "/diancan/adimOrder/list");
return "zujian/success";
}
```
这段代码实现了管理员登录和注销的功能。其中,`@Autowired`注解用于自动装配`AdminRepository`对象,该对象用于数据库查询操作;`@GetMapping`注解用于处理GET请求;`@RequestParam`注解用于获取请求参数;`@ResponseBody`注解用于将返回值直接输出到响应体中。在`loginAdmin`方法中,根据传入的手机号或用户名查询数据库中相应的管理员信息,通过比对密码确定是否登录成功,并将管理员ID写入cookie中;在`logout`方法中,根据请求中的cookie删除相应的管理员ID,并返回一个成功信息。