优化 @RequestMapping("login") public String login(@Nullable String refer, Model model, HttpSession session) { if (refer != null) { model.addAttribute("refer",refer); } if (session.getAttribute("user") != null ){ return "redirect:/"; } return "login"; }
时间: 2024-03-03 09:46:55 浏览: 95
对于这段代码,可以从以下几个方面进行优化:
1. 使用常量或枚举类来代替字符串,提高代码的可读性和可维护性。
2. 在参数列表中使用 `HttpServletRequest` 来代替 `HttpSession`,这样可以避免每次访问 Session 时都要调用 `getSession()` 方法,提高代码的性能和可读性。
3. 使用 `StringUtils` 工具类判断字符串是否为空,避免空指针异常。
4. 对于重复的代码可以进行封装,减少重复代码的出现。
下面是优化后的代码:
```java
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@Controller
public class LoginController {
private static final String LOGIN_PAGE = "login";
private static final String REDIRECT_INDEX = "redirect:/";
private static final String REFER = "refer";
private static final String USER = "user";
@RequestMapping("login")
public String login(@RequestParam(value = REFER, required = false) String refer,
Model model,
HttpServletRequest request) {
HttpSession session = request.getSession();
if (StringUtils.isNotBlank(refer)) {
model.addAttribute(REFER, refer);
}
if (session.getAttribute(USER) != null) {
return REDIRECT_INDEX;
}
return LOGIN_PAGE;
}
}
```
通过以上的优化,可以使代码更加清晰、简洁、易于维护,并且提高了代码的性能和可读性。
阅读全文
相关推荐


















