Study/JSP&Servlet
Session_세션란 언제 어디서 왜 쓰이는 것일까?
푸실리
2021. 7. 25. 17:42
Cookie_쿠키란 언제 어디서 왜 쓰이는 것일까?(광주 직업학교)
인터넷을 사용해본 경험이 있다면 누구나 들어봤을 용어, 바로 쿠키! 쿠키를 삭제해본 경험은 누구나 한 번씩 있을 것이라고 생각한다. 그런데 이 쿠키가 무엇인지, 언제 어디서 왜 쓰는지 궁금
sunnyroad.tistory.com
저번 포스팅에서는 쿠키에 대해서 알아보았는데, 이 쿠키는 치명적인 단점이 존재한다. 바로, 정보를 클라이언트의 컴퓨터에 저장한다는 점이다. 이 말은 공용 컴퓨터에서 내 정보를 입력해두면 이 공용 컴퓨터에 접근한 누구나 내 정보를 취할 수 있다는 말이다. 요즘처럼 개인정보에 민감한 시대에 얼마나 위험한 일인지..
그래서 이러한 쿠키의 치명적 단점을 보완하고자 나온 것이 바로 세션이다. 세션은 쿠키와 다르게 JSP(서버)에서만 접근이 가능해서 보완 유지에 탁월하다. 또한 저장할 수 있는 데이터 크기의 한계도 없다. (쿠키는 한계가 있음)
그렇다면! 이러한 세션의 장점을 가장 잘 활용할 수 있는 곳은 어딜까? 바로 로그인 기능이다. 나의 소듕한 비밀번호를 안전하게 지켜줄 세션은 내 정보를 서버에 안전하게 저장하면서, 회원 전용 페이지를 맘껏 오갈 수 있다.
그러나 세션의 단점 아닌 단점은 이 세션은 한 브라우저에서만 적용이 된다는 것이다. 만약 웹 브라우저를 새롭게 띄웠다면 로그인 또한 새로 해줘야 한다.
** 세션 만들기
response.setContentType("text/html; charset=euc-kr");
PrintWriter out = response.getWriter();
out.print("세션 만들기");
// 세션 객체 선언
HttpSession session = request.getSession();
//session 만들기
session.setAttribute("id", "tistory");
session.setAttribute("id2", "tistory2");
** 세션 보기
<%
//session은 Object 객체
// DTO, ArrayList, DAO 등 모든 자료형을 담을 수 있다.
String id = (String) session.getAttribute("id");
String id2 = (String) session.getAttribute("id2");
%>
제가 만든 세션의 값은 <%=id%>입니다.<br>
제가 만든 세션의 값은 <%=id2%>입니다.
** 세션 삭제
// session 삭제
HttpSession session = request.getSession();
// 특정 session 삭제
session.removeAttribute("id");
// 전체 session 종료
session.invalidate();
response.sendRedirect("showSession.jsp");