2017-10-10 641 views
2

나는 Spring MVC 프로젝트에 컨트롤러 클래스를 가지고있다.Spring MVC에서 HttpSession에 접근 할 수 없다. @Controller 클래스

@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

+0

내 대답이 문제를 해결 했습니까? 해결되면 동료 ** 사용자 **에게도 내 대답을 수락 할 수 있습니다. –

답변

2

이것은 클래스 경로에 서블릿 종속성이 없기 때문입니다.

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

HttpSessionHttpServletRequest에서 가져올 수 있습니다. req.getSession(false)은 이미 생성 된 경우 HttpSession 객체를 반환하고, 그렇지 않으면 null이 반환됩니다. req.getSession(true) 세션이 생성되지 않았는지 확인한 후 null 대신 새 세션을 반환했습니다. N.B : 또한 해당 javax servlet api 항아리가 클래스 경로에 추가되도록하십시오.

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

불행히도, 이것은 내 실제 문제가 아니 었습니다. 나는 어떤 방법이라도 HttpSession을 사용할 수 없었다. javax.servlet jar 라이브러리 – Joshgun

+0

을 가져온 후에이 문제를 해결했습니다. 또한 마지막 줄 (N.B) btw에서 말했습니다. :) –

1

프로젝트에 java servlet이 있어야합니다. 이 항목을 pom.xml에 추가하십시오.

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

나는 이미 동일한 답변을 게시했습니다 –

+0

방금 ​​전에 게시물을보고 게시했습니다! –

+0

당신은 시간을 비교할 수 있습니다 :) 내 대답은 당신의 앞에 게시되었습니다 –