帮我检查下以下代码:@PostMapping("/userLogin") public String userLogin(@RequestParam("username") String username,@RequestParam("password") String password,@RequestParam("character") String character, HttpServletRequest request, HttpServletResponse response,HttpSession session) { //登录方法 if (StringUtils.isEmpty(username)) { request.setAttribute("error","请输入用户名");return "login";} if (StringUtils.isEmpty(password)) { request.setAttribute("error","请输入密码");return "login";} if (StringUtils.isEmpty(character)) { request.setAttribute("error","请勾选身份");return "login";} //判断输入的内容是否为空 if(character.equals("1")){ //判断登录角色是买家还是卖家 Buyer buyer= buyerService.buyerLogin(username,password); if(buyer != null) { request.getSession().setAttribute("buyer",buyer); //将买家信息保存到session request.setAttribute("success","登录成功");return "applianceby";//买家登录} request.setAttribute("error","用户名或密码不正确,请重试");return "login"; }else{ Seller seller= sellerService.sellerLogin(username,password); if(seller != null) { request.getSession().setAttribute("seller",seller); //将卖家信息保存到session request.setAttribute("success","登录成功");return "appliancesl";//卖家登录} request.setAttribute("error","用户名或密码不正确,请重试");return "login";}}
时间: 2023-08-14 14:09:07 浏览: 55
以下是对您提供的代码进行检查和优化后的版本:
```java
@PostMapping("/userLogin")
public String userLogin(@RequestParam("username") String username, @RequestParam("password") String password, @RequestParam("character") String character, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
// 登录方法
if (StringUtils.isEmpty(username)) {
request.setAttribute("error", "请输入用户名");
return "login";
}
if (StringUtils.isEmpty(password)) {
request.setAttribute("error", "请输入密码");
return "login";
}
if (StringUtils.isEmpty(character)) {
request.setAttribute("error", "请勾选身份");
return "login";
}
// 判断输入的内容是否为空
if (character.equals("1")) {
// 判断登录角色是买家还是卖家
Buyer buyer = buyerService.buyerLogin(username, password);
if (buyer != null) {
session.setAttribute("buyer", buyer);
// 将买家信息保存到session
request.setAttribute("success", "登录成功");
return "applianceby"; // 买家登录
} else {
request.setAttribute("error", "用户名或密码不正确,请重试");
return "login";
}
} else {
Seller seller = sellerService.sellerLogin(username, password);
if (seller != null) {
session.setAttribute("seller", seller);
// 将卖家信息保存到session
request.setAttribute("success", "登录成功");
return "appliancesl"; // 卖家登录
} else {
request.setAttribute("error", "用户名或密码不正确,请重试");
return "login";
}
}
}
```
对于代码修改的解释如下:
- 将 `request.getSession().setAttribute("buyer",buyer);` 修改为 `session.setAttribute("buyer", buyer);`,并将 `request.getSession().setAttribute("seller",seller);` 修改为 `session.setAttribute("seller", seller);`,以更直接地在 HttpSession 中保存买家和卖家信息。
- 代码逻辑方面没有问题,但建议根据具体业务需求添加异常处理、加密密码等安全性措施,以保障系统的安全性。
请确保在实际使用时,进行单元测试和输入验证,以确保代码在各种情况下都能正确运行。