Session (세션)
브라우저 상에서 CRUD를 누구나 수행할 수 있게되면 악의적인 실행을 통해 서버 데이터 유지가 어려워질 수 있다.
Servlet 입장에서 요청한 브라우저의 상태 정보를 매 번 확인할 수 있어야한다.
관련해서 정책이 필요한데, 예를 들면 로그인 된 상태에서, 작성자가 일치하면 UPDATE나 DELETE를 할 수 있는 정책이다.
Session
1 | /* HttpServletRequest request */ |
getSession() 이 호출되면 key, value를 저장할 메모리가 할당된다.
요청한 브라우저와 매핑된 세션을 서버 메모리에서 찾아주며, 브라우저가 종료되면 해당 세션이 삭제된다.
- 브라우저 1개당, 서버 메모리 1개
getAttribute()
Session을 통해 userID의 값이 저장(로그인) 돼었을 때만 service 단에 접근할 수 있도록 만들 수 있다.
1 | if (session.getAttribute("userID") == null) { |
getAttribute()
메서드를 사용할 때는 Object 타입으로 해주기 떄문에 형변환
1 | String userRole = (String)session.getAttribute("userRole"); |
swetAttribute(), removeAttribute()
각 속성 값을 아래와 같이 설정할 수 있으며, Key 값이 중복되면 value 값이 update 된다.
removeAttribute()
메서드를 통해 Key, value 쌍을 삭제할 수 있다.
1 | session.setAttribute("userID", user.getId()); |
세션의 timealive
메모리가 낭비될 수 있기 때문에 tomcat 서버의 default 값은 30분이다.
Interaction(서버에 요청)이 없는 순간을 기준으로 한다.
1 | session.setMaxInactiveInterval(10); |
invalidate()
Logout을 할 때 session을 강제로 삭제
시킬 때 주로 사용된다.
1 | HttpSession session = request.getSession(); |
Session (세션)
install_url
to use ShareThis. Please set it in _config.yml
.