无法在 Spring MVC @Controller class 中访问 HttpSession

Can't access HttpSession in Spring MVC @Controller class

我在 Spring MVC 项目中有一个控制器 class。我的代码如下:

@Controller
public class MainController {

@RequestMapping(value = "/doLogin")
public String login(@RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
   //some code
  }
}

我想将 HttpSession 作为方法参数传递,但我无法访问 HttpSession。我附上了截图:

您可以从 HttpServletRequest 获得您的 HttpSessionreq.getSession(false) returns 如果已经创建了一个 HttpSession 对象,如果没有则返回 nullreq.getSession(true) 检查是否没有创建会话,然后返回一个新会话而不是 null。 N.B: 同时将你的 javax servlet api jar 添加到你的 class 路径中。

@Controller
public class MainController {
@RequestMapping(value = "/doLogin")
public String login(HttpServletRequest req, @RequestParam("email") String email, @RequestParam("pwd") String password, Model model){
    HttpSession session = req.getSession(false);
   //some code
  }
}

这是因为您的类路径中没有 servlet api 依赖项。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

您的项目中需要 java servlet。将此添加到您的 pom.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>