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

时间:2017-10-10 09:12:51

标签: java spring spring-mvc httpsession

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

@Controller
public class MainController {

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

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

3 个答案:

答案 0 :(得分:2)

您可以从HttpSession获取HttpServletRequestreq.getSession(false)如果已创建,则返回HttpSession个对象,否则返回nullreq.getSession(true)检查是否未创建会话,然后返回新的会话而不是null。 N.B:还要将你的javax servlet api jar添加到你的课程路径中。

@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
  }
}

答案 1 :(得分:2)

这是因为你在类路径中没有servlet api依赖。

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

答案 2 :(得分:1)

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

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