-
로그인 기능은 어떻게 구현할까? 세션에 대해 알아보자Knowledge/Spring 2019. 9. 4. 11:44반응형
클라이언트 별로 다른 정보를 제공하는 기능은 중요하다.
그러나 중요도에 비해(?) 구현은 굉장히 쉽다 일단 Session에 대해 알아보자
- Session
클라이언트 별로 서버에 저장되는 정보를 말한다.
- 사용법
(Spring 4.3.5 버전 기준으로 설명함)
일단 HttpSession을 생성해야 한다. 원래는 HttpRequest의 getSessiono()을 받아와서 세션에 저장하는 방식을 따라야 하는데 ( ex. HttpSession session = request.getSession(); ) 4.3.5 버전에서는 (아마 4이상이지 않을까 싶은데) 아래와같이
12345678@Controllerpublic class ReservationController {public String myreservation(@RequestParam(name = "resrv_email", required = false) String resrvEmail,HttpSession session) {}}컨트롤러 메소드에 HttpSession을 선언만 해주면 세션 아이디 보유 여부를 체크하는 부분은 자동으로 되는 듯 하다.
아무튼 이렇게 선언을 하고 session.setAttribute("id", id); 이런 식으로 session 값을 세팅해주면 잘 세팅된다.
session의 유지 시간은 특별히 지정하지 않으면 기본 30분으로 설정되어 있고 30분 이상 서버에 반응을 보이지 않으면 세션은 자동으로 끊어진다. 이러한 세션 유지시간은 서버의 web.xml의 session-config에서 세팅할 수 있다
세션을 끊는 다른 방법은 세가지다.
하나는 브라우저를 종료하는 것. 브라우저가 꺼지면 세션도 끊긴다.
나머지 둘은 Spring에서 구현하는 방식인데
session.removeAttribute(String id) 를 활용해 지정한 속성의 값을 제거할 수 있고
session.invalidate()를 활용해 현재 생성된 세션을 무효화 시킬 수 도 있다.
반응형'Knowledge > Spring' 카테고리의 다른 글
스프링에서 파일다운로드 구현하는 방법 (0) 2019.09.20 스프링에서 컨트롤러로 넘어온 파일 저장하는 방법 (0) 2019.09.18 스프링에서 로그를 남겨보자! SLF4J와 Logback (0) 2019.09.18 스프링 controller에서 파라미터를 받는 다양한 방법 ( @RequestParam, @RequestBody, @PathVariable) (0) 2019.09.04 Spring에서 JSON을 편하게 리턴해보자! Jackson 라이브러리와 RestController (0) 2019.08.21