1. HTTP의 한계: 비연결형 프로토콜→페이지 연결한 후 연결종료하므로 정보유지 안 됨
2. cookie&session: client의 정보를 지속적으로 유지하기 위한 방법
3. cookie: 정보 저장위치→client PC
-전달할 데이터를 웹 브라우저(client)에 보냈다가 web server로 돌려받는 방법
-자원: Client의 자원을 사용하므로 서버에 영향을 주지 않음→유지비용↓
-저장형식: web 페이지 방문 시 브라우저에서의 정보들이 텍스트 파일에서만 저장가능
-보안에 취약하므로 중요하지 않은 정보만 저장해야 함
-용량: 쿠키 하나 당 4KBX300개=1.2MB
- cookie 생성 및 동작 과정
client | request(id,pw) 1 | server |
response(+cookie) 1 cookie 하드디스크에 저장 |
login | |
request 2(cookie 포함 요청) | ||
response(cookie 전달) |
1)객체 생성하기: Cookie 쿠키 변수명=new Cookie("쿠키 이름", "쿠키 값");
-쿠키의 값이 한글이면 인코딩->URLEncoder 객체 사용
2)쿠키 유효기간 설정(초 단위): 쿠키 변수명.setMaxAge(설정시간)
-양수: 초 단위로 입력, 해당 시간만큼 쿠키 유지
-음수: 브라우저 종료 시 쿠키가 자동으로 제거됨
-0 : 쿠키 제거(유지시간이 0초이므로 제거된 거 같은 기능)
3)쿠키 전송: 응답할 때 쿠키를 전송하므로 response 객체 사용
-response.addCookie(쿠키 변수명);
4)쿠키 조회
쿠키 생성 실행 후 쿠키 조회를 실행해야 쿠키가 조회됨
-서버가 따로 요청하지 않아도 Cookie는 request 객체에 담겨서 전달됨
4. session: 정보 저장위치 →server PC
-web server에 있는 데이터 영역을 통해 데이터를 전달하는 방법→보안 강력함
-자원: Server의 자원을 사용하기 때문에 유지비용관리를 위해 중요한 정보만 저장
-용량: Server가 허용하는 범위 내에서 제한 없음
-저장형식: object→모든 객체를 담을 수 있음
- 동작원리
-session이 이동하는 것이 아니라 session key를 담은 cookie가 이동하며 세션 유지
(session key)
1)Session 객체 생성하기: HttpSession 세션 변수명=request.getSession()
2)Session 생성: session.setAttribute(“세션 이름”, “세션 값”)
-session의 값은 object 타입->모든 객체 가능
-session의 이름이 중복되면 나중에 생성한 session으로 덮어쓰기됨
3)Session 유효기간 설정(초 단위): 세션 변수명.setMaxInactiveInterval(설정시간)
4)Session 조회
-웹브라우저를 열고 있는 동안만 session 유지됨
→세션 생성 실행 후 웹브라우저를 종료하지 않은 상태에서 세션 조회를 실행해야 함
-session을 만든 웹페이지를 종료하면 session을 조회할 때 session 값이 null이 된다.
-session 객체는 내장객체이므로 JSP에서는 객체를 생성할 필요가 없다.
-session은 object 타입이므로 변수를 다른 타입으로 하고 싶으면 형변환해야 함
5) Session 삭제
- 특정 Session 삭제: session.removeAttribute("변수명");
- 전체 Session 종료: session.invalidate();
'JSP&Servlet' 카테고리의 다른 글
[JSP]6. Maven&Mybatis (0) | 2023.06.27 |
---|---|
[JSP]5. Scope (0) | 2023.06.26 |
[JSP]3. MVC 패턴으로 JDBC 만들기 (0) | 2023.06.22 |
[JSP]2. 내장객체 (0) | 2023.06.21 |
[JSP]1. JSP의 구성요소 (0) | 2023.06.20 |