-
SessionJava/Spring 2018. 8. 23. 17:41반응형
Session의 단점
1. 사용자가 많으면 메모리가 많이 필요하다.
2. 보안 취약 -> Session ID를 계속 바꿔야한다. -> Session 하이재킹에 위협이 있다.
3. 분리되있는 서버에서는 Session이 공유가 안된다.
Server에 VO정보를 전달한다. -> Session ID
브라우저 Cookie에 Session ID를 저장하고, 서버가 닫히면 삭제 된다.
재요청시 이전에 사용했던 SessionID를 브라우저 쿠키에서 가져온다.
Spring Controller는 필요한 객체들을 파라미터를 통해 직접 제공받을 수 있다.
Session 처리를 위해 HttpSession 객체가 필요할 경우 파라미터를 통해 주입 받는다.
DispatcherServlet이 필요한 Argument 자리에 Parameter를 전달한다.
@PostMapping("/member/login")public String doMemberLoginAction(@ModelAttribute MemberVO memberVO,HttpSession session) {MemberVO loginMemberVO = this.memberService.readOneMember(memberVO);session.setAttribute("_USER_", loginMemberVO);return "redirect:/board/list";}session.setAttribute("_USER_", loginMemberVO);setArrtibute를 통해 loginMemberVO에 _USER_ Session정보를 넣는다.
session.getAttribute를 통해 정보를 얻어온다.
@GetMapping("/board/write") // Spring 4.3부터 사용 가능public String viewBoardWritePage( @SessionAttribute(name="_USER_", required=false) MemberVO memberVO ) {// session이 없으면 다시 login하게 시키기if( memberVO == null ) {return "redirect:/member/login";}return "board/write";}Session 대부분 언더바로 시작해서 언더바로 끝낸다.
서버재시작시 Session 정보가 날아간다.
반응형'Java > Spring' 카테고리의 다른 글
Application 예외 처리 (0) 2018.08.24 File - Upload / Download (0) 2018.08.23 Spring - JSTL (0) 2018.08.22 Spring - JDBC (0) 2018.08.21 Eclipse Error - An error occurred while filtering resources Maven Java EE Configuration Problem (0) 2018.08.21 댓글