springmvc中将servlet api对象作为处理方法的入参使用

在springmvc中,控制器不依赖任何servlet api对象,也可以将servlet api对象作为处理方法的入参使用,非常方便,比如需要使用HttpSession对象,那么就可以直接将HttpSession作为入参使用,如下

@RequestMapping(value = "/dologin.html", method = RequestMethod.POST)
public String doLogin(@RequestParam String userCode, @RequestParam String userPassword,
                      HttpSession session, HttpServletRequest request){
    User user = userService.selectUserByUserCodeAndUserPassword(userCode, userPassword);
    if (null != user){
        session.setAttribute("userSession", user);
        return "redirect:/user/main.html";
    }else {
        request.setAttribute("error", "用户名或密码不正确");
        return "login";
    }
}

@RequestMapping("/main.html")
public String main(HttpSession session){
    if (session.getAttribute("userSession") == null){
        return "redirect:/user/login.html";
    }
    return "frame";
}

登录成功之后将当前用户信息存入HttpSession中,同样对于HttpServletRequest,主要用户登录失败后提示错误信息。

main方法中也增加了HttpSession入参,在方法体内通过逻辑来判断session中是否存有当前登录用户,若无,则证明没登录系统或session已过期

原文地址:https://www.cnblogs.com/yanguobin/p/11665378.html