1 쿠키는 무엇입니까?
브라우저와 웹 서버는 HTTP 프로토콜을 사용하여 통신합니다. 사용자가 페이지 요청을 발행하면 웹 서버는 단순히 응답 한 다음 사용자와의 연결을 닫습니다. 따라서 요청이 웹 서버로 전송되면 첫 번째 방문 여부에 관계없이 서버는 처음으로이를 처리합니다. 이것은 상상할 수있는 나쁜 것입니다. 이 결함을 보충하기 위해 Netscape는 특정 사용자의 식별 정보를 저장하는 효과적인 도구 인 쿠키를 개발하여 사람들이 "달콤한 쿠키"라는 별명을 붙였습니다. 쿠키는 웹 서버가 브라우저를 통해 방문자의 하드 디스크에 정보를 저장하는 수단입니다. Netscape Navigator는 Cookies.txt라는 로컬 파일을 사용하여 모든 사이트에서받은 쿠키 정보를 저장합니다. IE 브라우저는 C :/Windows/Cookies와 유사한 디렉토리에 쿠키 정보를 저장합니다. 사용자가 다시 사이트를 방문하면 서버는 브라우저에 이전에 보낸 쿠키 정보를 찾아 반환하여 사용자를 식별하도록 요청합니다.
2 쿠키의 네 가지 속성
Max-Age는 CCookie의 수명을 지정합니다 (초)! 기본적으로 쿠키의 값은 브라우저 세션 중에 만 존재하며 사용자가 브라우저를 종료하면 이러한 값이 사라집니다!
Path는 쿠키와 관련된 웹 페이지를 지정합니다. 기본적으로 쿠키는 웹 페이지와 동일한 디렉토리의 웹 페이지와 디렉토리의 하위 디렉토리의 웹 페이지와 관련이 있습니다.
도메인 액세스 도메인 설정 예를 들어 : Order.example.com에 위치한 서버는 Catalog.example.com의 쿠키를 읽어야합니다. 여기에서 도메인 속성을 소개해야합니다. Catalog.example.com에있는 페이지에서 만든 쿠키가 경로 속성을 "/"및 도메인 속성에 ".example.com"에 설정 한 다음 "catalog.example.com"에 위치한 모든 웹 페이지와 "Orders.example.com"에 위치한 모든 웹 페이지와 "Orders.example.com"에 위치한 모든 웹 페이지에 위치한 모든 웹 페이지가 쿠키에 액세스 할 수 있다고 가정합니다. 쿠키의 도메인 값이 설정되지 않은 경우이 속성의 기본값은 쿠키가 생성 된 웹 페이지의 서버의 호스트 이름입니다. 참고 : 쿠키 도메인은 서버가있는 도메인 외부의 도메인으로 설정할 수 없습니다.
Seeure는 쿠키의 값이 네트워크에서 어떻게 전송되는지 지정합니다.
3 자바 쿠키 운영
쿠키를 만듭니다
// 새로운 쿠키 객체, 키-값 쌍은 쿠키 쿠키 매개 변수입니다. 쿠키 = 새로운 쿠키 ( "키", "쿠키 값"); 쿠키의 값에 중국어가 포함 된 경우 쿠키를 인코딩해야합니다. 그렇지 않으면 차량 코드가 발생합니다. UrlenCoder.encode를 사용하십시오 ( "쿠키 값", "UTF-8"); // 쿠키의 최대 생존 시간을 몇 초 만에 설정하십시오. 음수가 브라우저 프로세스 인 경우 쿠키를 닫는 경우 쿠키를 닫습니다 (*24*60*60); // 언젠가 // 응답에 쿠키를 추가하여 응답을 받도록합니다. AddCookie (쿠키); // AddCookie 이후, 이름이 같은 쿠키가 이미 존재하면 최신 쿠키를 덮어 씁니다.
참고 : Struts에서는 servletactionContext.getResponse ()를 사용하여 Respone Object를 얻을 수 있습니다.
쿠키를 읽으십시오
쿠키를 읽으면 요청에서 모든 쿠키를 얻은 다음 루프로 반복 할 수 있습니다.
Struts에서는 servletactionContext.getRequest ()를 사용하여 요청 객체를 얻을 수 있습니다.
// 요청에서 쿠키를 가져 오면 쿠키 배열 쿠키 배열 [] 쿠키 = request.getCookies (); // 그런 다음 if (쿠키! = null && 쿠키 .length> 0) {// 쿠키를 설정하지 않은 경우 (쿠키 쿠키 : 쿠키) {...}}에 대해 NULL을 반환합니다. 쿠키 삭제
쿠키를 삭제하면 쿠키의 수명을 0으로 설정하면됩니다.
쿠키 [] 쿠키 = request.getCookies (); if (쿠키! = null && 쿠키 .length> 0) {for (쿠키 쿠키 : 쿠키) {문자열 이름 = coopie.getname (); // if if (name.compareto ( "target-key") == 0) {// 수명을 0 Cookie.SetMaxage (0)로 설정하는 경우 삭제 해야하는 쿠키를 찾으십시오. // 응답으로 다시 설정합니다 .addcookie (쿠키); }}}4 개의 쿠키의 SetPath 방법이 사용됩니다.
일반 쿠키는 하나의 앱에서만 공유 할 수 있습니다. 즉 쿠키는 쿠키를 만든 앱에서만 얻을 수 있습니다.
1.이 메소드는 동일한 응용 프로그램 서버 내에서 공유 할 수 있습니다. SET COURIE.SETPATH ( "/");
기본 Tomcat/WebApp에는 WebApp_A 및 WebApp_B의 두 가지 응용 프로그램이 있습니다.
1) webApp_A 아래에있는 쿠키는 webApp_B에 따라 얻을 수 없다는 것이 밝혀졌습니다. 경로는 기본적으로 쿠키를 생성하는 응용 프로그램의 경로입니다.
2) webApp_a에 쿠키를 설정하면 쿠키를 추가하십시오. 또는 Cookie.SetPath ( "/webApp_B/");
WebApp_B에서 CAS가 쿠키를 설정할 수 있습니다.
3) 여기의 매개 변수는 Application Server (예 : Tomcat의 Webapp)에 저장된 응용 프로그램 폴더의 루트 디렉토리와 관련이 있습니다. 그런 다음 쿠키는 WebApp 폴더의 모든 응용 프로그램에서 공유 할 수 있으며 Cookie.SetPath ( "/webApp_B/");
이는 CAS 애플리케이션에서 설정 한 쿠키가 WebApp_B 응용 프로그램에서만 얻을 수 있으며이 쿠키를 생성하는 WebApp_A 응용 프로그램조차 사용할 수 없음을 의미합니다.
4) Cookie.SetPath ( "/webApp_B/JSP") 또는 Cookie.SetPath ( "/webApp_B/JSP/")를 설정할 때 쿠키는 WebApp_B/JSP에서만 얻을 수 있지만 쿠키는 JSP 폴더 외부에서 얻을 수 없습니다.
5) Cookie.SetPath를 설정합니다 ( "/webApp_B"); 쿠키는 쿠키를 생성하는 쿠키를 생성하는 webApp_A에서 쿠키를 얻을 수 없도록 쿠키를 webApp_B에서만 사용할 수 있음을 의미합니다.
6) 여러 쿠키가있을 때 .setpath ( "xxx"); 성명서, 마지막 진술이 우세해야합니다.
5 쿠키. 세트 도메인 방법 디자인 크로스 도메인 공유
기계 A가있는 도메인 : home.langchao.com, A는 Application webApp_a를 가지고 있습니다.
B 머신이 위치한 도메인 : JSZX.com, B는 Application WebApp_B가 있습니다.
1) webApp_a에서 쿠키를 설정할 때 Cookie.SetDomain ( ". jszx.com")을 추가하십시오. WebApp_B에서 쿠키를 얻을 수 있습니다.
2) webApp_B에 액세스하기 위해 URL을 입력 할 때는 도메인 이름을 입력하여 해결해야합니다. 예를 들어, 입력 할 때 : http://lc-bsp.jszx.com:8080/webapp_B 머신 A에서는 클라이언트에서 webApp_a로 쿠키를 설정할 수 있지만 http : // localhost : 8080/webApp_b는 쿠키를 얻을 수 없습니다.
3) Cookie.SetDomain ( ". jszx.com"); Default Home.langchao.com에서 공유 할 수도 있습니다
Java에서 쿠키 사용에 대한 위의 진부한 이야기는 내가 공유하는 모든 콘텐츠입니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.