안녕하세요!!~~ 여러분 주말에 할머님 산소에 간다고 공부를 정말 놓아버렸지 뭡니까 ㅋㅋㅋㅋㅋ 흐름이 끊겨 버려서 다시 멘탈 잡고 공부하는 게 쉽지 않았습니다ㅜㅜ.... 그래도 다시 멘털을 잡고 공부한 내용인 세션에 대해서 포스팅해볼게요 ㅎㅎ
세션(session)은 이 웹브라우져가 끝날 때까지 클라이언트의 데이터를 가지고 있는 기능이라고 이해하시면 좀 편하실 겁니다.
쉬운 예로 네이버에 로그인을 했다고 가정을 해 보죠ㅎㅎ 근데 그 로그인이 계속 유지가 되지 않고 쇼핑을 하거나 블로그를 들어가거나 카페에 들어가거나 할 때마다 계속 로그인을 해줘야 한다고 생각해 보세요 ㅠㅠ 얼마나 불편하겠습니까
그리고 그렇게 하면 사용자가 몰렸을때 서버가 감당하지 못하고 그대로 다운돼 버리는 일이 발생할 수도 있겠죠
그렇기 때문에 웹 개발자 라면 서버에 데이터를 저장할 수 있고 그래서 보안에도 유리한 session을 잘 이해하고 있어야 합니다
좋다고 다 session처리를 해버리면 서버에 저장할 데이터가 기하급수적으로 많아져 버리니 그런 처리는 좋은 처리가 아닙니다
세션은 request 와 같이 내장 객체로 따로 선언할 필요가 없는 객체입니다
위 코드는 너무 쉬운 코드라 설명은 넘기겠습니다! 이해가 안 되시면 이전 포스팅을 보시면 되세요!
form에 서블릿으로 데이터를 보내고 있으니 저 서블릿도 기능에 맞게 코딩을 해야겠죠?
위 서블릿 코드에 대한 설명은 주석으로 자세히 적혀있으니 참고하시면서 읽으시면 좋을 것 같고요! 64번 줄과 65를 보시면 이 제어를 forward방식으로 넘기는 코드인데 RequestDispatcher를 사용해서 경로를 설정한 객체를 사용해 forward 하고 있습니다
간단하죠?! ㅎㅎ
이제 서블릿에서 데이터를 받아서 시각적으로 그 결과에 대해서 보여주고 있습니다
일단 서블릿에 있는 데이터를 반환받으려면 getAttribute메서드를 사용해야 한다고 위 표를 참고하시면 이해하실 수 있습니다
15번째 줄을 보시면 세션을 지우고 있는 코드입니다
경우에 따라서는 그 상황에 맞게 세션을 지울 필요도 있을 것입니다 그럴 때 removeAttribute를 사용해서 해상 세션을 하나씩 지울 수도 있고
invalidate() 메서드를 사용해서 한 시점에 모든 세션 데이터를 날려버리는 방법도 있습니다
상황에 맞게 적절히 사용하면 좋을 것 같습니다
자! 이렇게 세션에 대해서 얄팍하고 간결하게 알아봤습니다. jsp는 단순히 콘솔 창에 출력하는 그런 프로그램을 만드는 언어적인 기술이 아닌 그 언어적 기술을 바탕으로 서비스를 구현하는 방법이다 보니 개발자들이 클라이언트와의 소통적인 부분을 많이 고민하고 그로 인해서 생긴 기술들이 아닐까라는 생각을 해 봤습니다
오늘도 긴 글 읽어주셔서 너무 감사하고요!
다음에 또 봐요
'JSP' 카테고리의 다른 글
JSP를 배워보자!!(Cookie) (0) | 2021.05.06 |
---|---|
JSP를 배워보자!!(다국어 처리 Locale클래스) (0) | 2021.04.29 |
JSP를 배워보자!!(유효성 검사) (0) | 2021.04.28 |
JSP를 배워보자!!(파일 업로드 하기) (1) | 2021.04.24 |
JSP를 배워보자!! {form태그} (0) | 2021.04.22 |