본문 바로가기

JSP,Servlet

JSP / 세션 혼자 복습

세션은 접속할때마다 갱신 / 값을 재발급 받음

 

쿠키 유효기간은 활동안해도 상관없음

하지만 세션 유효기간 일정시간동안 활동X 접속X 세션이 만료되었습니다! 게임에서 자주봄

 

Session 의 데이터 타입은 Object --> 최상위 Class (자바의 모든객체를 저장 가능)

-> 모든 자바 객체가 상속받음

->단 저장할때 Object 클래스로 저장하기 때문에 반드시 업캐스팅 현상발생 

-> 우리가 꺼내서 쓰려면 다운캐스팅 발생

ex String -> 넣어서 쓰러면 다운캐스팅 해줘야하기 때문에 (String)

 

쿠키보다 과정이 2개 많다 !!

 

쿠키보다 세션이 느림   (쿠키가 더빠름 --> 이게 아직까지 쿠키를 사용하는 이유)

 

 

세션 객체 생성 

JSP에서는 내장객체 때문에 객체 생성없이 바로 사용가능!!

 

세션 값 추가 ====>setAttribute("세션이름", "(Object)데이터")

session.setAttribute("session1","첫번째 세션");

session.setAttribute("session2", 15);

 

세션도 자바코드로 작성!!! 쿠키와 마찬가지

 

세션 가져오기====>session.getAttribute("세션이름");

세션은 쿠키와 달리 하나하나 가져오는게 가능 !

session.getAttribute(session1);

====> 세션1은 첫번째 세션이 담겨있으니깐 String

String value1 = session.getAttribute(session1);

====> 이러면 오류뜸 

세션에서 값을 꺼내올때는 다운 캐스팅(명시적 형변환)

====>String value1 = (String)session.getAttribute(session1);

session.getAttribute("session2");

====>세션2는 15 가 담김 int형

int value2 = (int)session.getAttribute("session2");

====> 이거 삭제 될때 오류뜸!! ====> NullPointerException :null값이 허용되지 않는 경우인데 null값이 들어간 경우 ====> int, char, boolean ====> 기본자료형 ====> 기본자료형에는 null값을 담을수 없음====>int 대신 int참조자료형 Integer사용 / Intger value2 = (Intger)session.getAttribute("session2");

 

출력

out.print(value1+"<br>")

out.print(value2+"<br>")

 

form이나 a href로 서블릿으로 이동시킬때 .jsp 절대 안붙임 !!! 

 

서블릿에서는 session 객체를 생성해야한다 !!!!  ====> jsp에서만 객체 생성 생략하는거임

서블릿에서 session객체를 생성할려고 하면

HttpSession 자동완성해라 !! 

HttpSession session = request.getSession(); ====> 세션은 쿠키랑 다르게 웹페이지에 있는 정보를 받아와야기 때문에 request.getSession();

 

세션 1개 삭제 ====> removeAttribute("세션이름")

session.removeAttribute("session1")

====> 세션 1만 지움

확인하려면

response.sendRedirect("출력하는페이지로") 세션 가져오는곳으로

세션은 크롬브라우저를 닫은 순간 사라짐 

 

쿠키를 삭제하면 아예 없어짐 / 세션을 삭제하면 null 

 

세션 전체 삭제

 

세션 객체 생성

1. HttpSession session = request.getSession();

 

전체 삭제 메서드

session.invalidate();