본문 바로가기
IT, 개발/JAVA

Java - Spring HTTP 세션 활용하기(HttpSession 로그인 회원 user session)

by 개발자스터디 2022. 11. 28.
반응형

 

 

 

 

 

웹페이지에서 회원관리는 필수적입니다.

웹페이지에서 회원가입 후 로그인을 하면 사용하는 동안 로그인이 유지되도록 하게 위해 session을 사용해보려고 합니다.

HttpSession을 사용하면 자바와 자바스크립트에서 모두 활용할 수 있어 편리합니다.

 

 

1. 로그인 시 세션 생성 

 

HttpSession을 생성한 뒤 내가 원하는 Attribute를 설정합니다.

Attribute의 name과 value 값을 넣어주면 됩니다.

 

HttpSession session = request.getSession(true);
session.setAttribute("userId", paramMap.get("userId"));
session.setAttribute("userName", paramMap.get("userName"));
...
...

 

컨트롤러 예시입니다.

1
2
3
4
5
6
7
8
9
10
11
12
@RequestMapping(value = "/user/loginUser", method = {RequestMethod.POST})
public @ResponseBody Map<String, Object> getLoginUser(@RequestBody Map<String, Object> paramMap, HttpServletRequest request) throws Exception
{
    
    HttpSession session = request.getSession(true);
    
    session.setAttribute("userId", paramMap.get("userId").toString());
    session.setAttribute("userName", paramMap.get("userName"));
 
 
    return null;
}
cs

 

 

 

2. 로그아웃 시 세션 무효처리 

 

로그아웃이나 기타 다른 이유로 인해 세션을 종료하고자 할 경우 사용합니다.

 

HttpSession session = request.getSession(true);
session.invalidate();

 

컨트롤러 예시입니다.

 

1
2
3
4
5
6
7
8
@RequestMapping(value = "/user/logout", method = {RequestMethod.GET})
public String setLogOut(HttpServletRequest request) throws Exception
{
    HttpSession session = request.getSession(true);    
    session.invalidate();
    
    return "/home/home";
}
cs

 

 

 

3. 자바스크립트에서 세션 값 사용하기

 

jsp단에서도 설정한 세션에 접근할 수 있습니다.

화면에 세션 값 중 일부를 표시하고 싶거나 변수로 다양하게 활용하고자 할 경우 아래와 같이 사용할 수 있습니다.

 

1
var sessionUserId = '<%=(String)session.getAttribute("userId")%>';
cs

 

세션 생성 시 설정한 Attribute의 name값으로 그에 해당하는 데이터를 꺼내올 수 있습니다.

** 에시에서의 name 값은 "userId"입니다.

 

 

 

 

 

728x90
반응형