Java 팁:쿠키 작업
4199 단어 cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);//60초의 생존 기간을 설정합니다. 만약 마이너스로 설정하면 브라우저 프로세스 쿠키 (메모리에 저장) 를 위해 브라우저를 닫으면 효력을 상실합니다.
cookie.setPath("/test/test2");//Cookie 경로를 설정하고 설정하지 않으면 현재 경로(서브렛의 경우 request.getContextPath() + 웹.XML에 구성된 서브렛의 url-pattern 경로 섹션)
response.addCookie(cookie);
l 2.쿠키 읽기
Cookie[] cookies = request.getCookies();
//이 방법은 현재 경로와 '직접 부모 경로' 의 모든 쿠키 대상을 읽을 수 있으며, 쿠키가 없으면 null로 되돌아갑니다
예:
Cookie cookies[] = request.getCookies();
if (cookies != null)
{
for (int i = 0; i < cookies.length; i++)
{
if (cookies[i].getName().equals("cookiename"))
{
System.out.println("+++++++++++++++++++++++++++++++++++:"+URLDecoder.decode(cookies[i].getValue(),"UTF-8"));
}
}
}
l 3.쿠키 삭제
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);//지금 쿠키를 삭제하려면 0으로 설정
cookie.setPath("/test/test2");//지정된 경로에서 쿠키 삭제, 경로 설정 안 함, 기본적으로 현재 경로 쿠키 제거
response.addCookie(cookie);
l 4.참고: 경로 구조를 다음과 같이 가정합니다.
/test
/test/test2
/test345
/test555/test666
a. 같은 키 이름의 쿠키(값은 같거나 다를 수 있음)는 다른 경로 아래에 존재할 수 있습니다.
b. 삭제할 때 현재 경로에 키가 "key"인 쿠키가 없으면 모든 부모 경로를 조회하고, 검색하면 삭제 작업을 실행합니다. (매번 자신과 가장 가까운 부모 경로 쿠키만 삭제할 수 있습니다) 본문은 꿈에서 나온 것입니다.
FF.쿠키를 설정할 때 사용하는 것과 같은 경로를 지정해서 변경 쿠키를 삭제해야 하며 쿠키의 키 이름은 대문자, 소문자, 크기를 막론하고 모두 경로를 지정해야 합니다.
IE. 키 이름이 소문자일 때, 현재 경로가/test/test2이면, 다시 위로/test,/test555,/test345를 찾을 수 없으면/를 조회합니다.(/test555/test666은 조회하지 않음)
키 이름의 대소문자가 혼합되거나 대문자가 될 때 경로를 지정하지 않으면 기본적으로 현재 경로를 삭제하고 위로 조회하지 않습니다.
c. 쿠키를 읽을 때는 직접 상위 경로의 쿠키만 읽을 수 있습니다.
현재 경로가/test/test2라면 읽을 키는 '키' 입니다.현재 경로를 읽은 후/test를 읽고/test를 읽은 후, 본문을 읽습니다.
d. 자바의 웹 프로젝트를 할 때 일반적인 웹 서버(예를 들어 Tomcat이나 Jetty)는 모두 Context로 서로 다른 웹 Application을 관리하기 때문에 모든 Context에 서로 다른 Path가 있다.
한 서버에 여러 개의 웹 응용 프로그램이 있을 때 Path 를/로 설정하는 쿠키를 설정하지 않도록 주의하십시오. 쉽게 오작동할 수 있습니다.(물론 도메인 이름이 같다는 전제 조건)
인스턴스:
1. Cookie
function SetCookie(name, value)
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
alert("expires:"+expires);
var path = (argc > 3) ? argv[3] : null;
alert("path:"+path);
var domain = (argc > 4) ? argv[4] : null;
alert("domain:"+domain);
var secure = (argc > 5) ? argv[5] : false;
alert("secure:"+secure);
expdate.setTime(expdate.getTime() + ( 60 * 30 * 24 * 60 * 60 * 1000 ));
document.cookie = name + "=" + escape (value) + "; expires="+ expdate.toGMTString()
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}
2. Cookie
function GetCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return "";
}
function GetCookieVal(offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
3. Cookie
function DelCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
서버에서 쿠키 만료 값 가져오기브라우저는 쿠키 만료를 처리하므로 쿠키의 만료 값을 서버에 전달하지 않습니다. 서버에서 쿠키의 만료 값을 얻으려면 일부 조정을 해야 합니다. 두 가지 방법이 있습니다. JSON 값으로 쿠키를 생성할 수 있습니다 다른...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.