쿠키 및 세션
대화
세션 : 세션은 여러 요청과 응답을 포함한다
기능 : 다시 한번, 데이터 공유 세션에 대한 더 많은 요청 사이의 범위
방법 : 클라이언트 회화 기법 : 쿠키
서버 측 페인팅 기술 : 세션
쿠키의 특징 및 역할
쿠키 데이터는 클라이언트 브라우저에 저장됩니다
4킬로바이트의 크기 제한에 대한 쿠키 브라우저, 같은 도메인 쿠키 아래의 수 이상 (20)
쿠키는 일반적으로 소량의 구분없이 데이터를 저장하는 데 사용
서버에 로그인이없는 경우 클라이언트 식별을 완료
운영 쿠키
1. 쿠키 객체를 생성 : 새로운 쿠키 (문자열 이름, 문자열 값)
2. 브라우저에 쿠키 객체를 보내기 : response.addCookie (쿠키 쿠키를)
3. 获取 쿠키 : 쿠키 [] request.getCookes ()를 ()
보호 무효 의 doPost (HttpServletRequest의 요청, HttpServletResponse를 응답) 가 발생 ServletException을, IOException가 { // 创建쿠키 쿠키 쿠키 = 새로운 쿠키를 ( "쿨", "안녕하세요" ); // 发送쿠키 response.addCookie (쿠키); }
보호 공극 의 doPost (HttpServletRequest의 요청은 HttpServletResponse를 응답) 발생 ServletException을 IOException을 { // 얻기 쿠키 의 쿠키 [] = 쿠키 request.getCookes ()를 (); // 쿠키에 데이터를 통해 IF (= 쿠키!의 널 ) { 대 (C 쿠키 : 쿠키는 ) { // 가져 오기 쿠키 값 쌍 건너 문자열 이름 = ; c.getName () 문자열 값 = ; c.getValue () 에서 System.out.println (이름 : + ""+ ; 값) } } }
쿠키의 다른 지식
1. 하나의 쿠키는 여러 개체를 만들 수 있습니다, 여러 개의 쿠키를 보낼 수 있습니다, 여러 번에 대해 addCookie 방법은 쿠키 응답 호출을 보내는 데 사용할 수 있습니다.
2. 기본적으로 브라우저를 닫을 때, 쿠키 데이터를 파괴한다
영구 저장 setMaxAge에 의해 완성 (INT 초)
양 : 쿠키 데이터는 하드 디스크의 파일에 기록됩니다. 영구 저장. 그리고 시간이 지나면 쿠키 생존 시간을 지정, 쿠키 파일이 자동으로 소멸
기본값 : 마이너스
제로를 : 쿠키 정보를 삭제
3.Cookie 지원 중국어 톰캣 (8) 후, 이전에 필요한 트랜스 코딩 중국 데이터 경우 지원되지 않습니다
같은 Tomcat 서버의 기본 쿠키으로 4. 공유 할 수 없습니다
setPath (문자열 경로) 작성자 : 쿠키 수집의 범위를 설정합니다. 기본적으로 현재 가상 디렉터리 설정
공유하려는 경우, 당신이 경로를 설정할 수 있습니다 "/"로
다른 Tomcat 서버 사이
setDomain (문자열 경로) 작성자 : 당신이 동일한 도메인 이름을 설정하면, 쿠키는 여러 서버간에 공유 할 수 있습니다
세션 기능과 쿠키와 차이
현재의 세션 요청 내에 복수 회 서버 측 세션 데이터를 기억
세션은 모든 크기의 모든 유형의 데이터를 저장할 수
세션 쿠키의 차이
서버 측 (1)에 저장된 데이터는 세션 쿠키 클라이언트
없이 데이터 사이즈 제한 2 세션 쿠키가
3 세션 데이터 보안 쿠키 불안전 존중
세션 작업
1.获取의 HttpSession对象:
HttpSession이 세션 = request.getSession ();
2.使用의 HttpSession对象:
객체의 getAttribute (문자열 이름)
무효의 setAttribute (문자열 이름, 개체 값)
무효 removeAttribute (문자열 이름)
보호 공극 의 doPost는 (HttpServletRequest 요청, HttpServletResponse 응답) 발생 {ServletException을, IOException가 HttpSession이 세션 = request.getSession (); session.setAttribute ( "HH", "hhhhhhh" ); }
보호 공극 의 doPost는 (HttpServletRequest 요청, HttpServletResponse 응답) 발생 {ServletException을, IOException가 HttpSession이 세션 = request.getSession (); 개체 HHHH = session.getAttribute ( "HH" ); 에서 System.out.println (HHHH); }
세션의 다른 지식
클라이언트가 닫히면 1. 서버가 두 번 같은인지 세션을 획득, 종료하지 않는 이유는 무엇입니까?
기본적으로. 아니오.
같은 필요한 경우, 당신은 쿠키를 만들 수 있습니다, 키가 JSESSIONID가, 저장 쿠키 지속성에 대한 최대 생존 시간을 설정합니다.
보호 공극 의 doPost는 (HttpServletRequest 요청, HttpServletResponse 응답) 발생 {ServletException을, IOException가 HttpSession이 세션 = request.getSession (); 쿠키 C = 새로운 쿠키 ( "JSESSIONID" , session.getId ()); c.setMaxAge ( 60 * 60 ); response.addCookie (c); }
2. 클라이언트가 서버를 종료, 종료되지 세션이 두 번 같은 권리를 얻는 것입니다?
동일하지,하지만 데이터를 확인하기 위해 손실되지 않습니다. Tomcat은 자동으로 다음 달성
패시 세션 :
서버는 일반적으로 하드 디스크에 세션 객체 직렬화 전에 폐쇄
세션 활성화 :
서버 메모리에 세션 객체에 대한 세션의 파일 변환을 개시 한 후.
때 3. 세션이 파괴된다?
서버가 종료
무효화 ()를 호출하는 세션 객체를
30 분 세션 기본 만기 시간을