먼저 쿠키가 무엇인지 이해해 보겠습니다.
쿠키는 실제로 하드 드라이브에 존재하는 데이터이지만,이 데이터는 매우 특별하며 웹 애플리케이션을 통해 도움을주기 위해 브라우저에만 제출할 수 있습니다. 브라우저 쿠키도 읽을 수도 있습니다.
웹 응용 프로그램은 일반적으로 일부 사용자 정보 및 기타 소규모 및 임시 데이터 만 쿠키에 저장합니다. 데이터 양이 크면 쿠키에 데이터를 저장하는 데 적합하지 않습니다.
일반적으로 브라우저는 각 웹 애플리케이션에 대한 데이터를 저장하기 위해 40 개의 쿠키를 제공하며 각 쿠키의 크기는 4K를 초과하지 않습니다 (일부 브라우저는 큰 데이터를 저장할 수 있지만 일반적으로 데이터 추출 효율이 높지 않아 성능에 영향을 미치기 때문에 큰 데이터를 저장하지 않습니다).
너무 말도 안되는 말을 한 후 마침내 요점이왔다
Java는 httpservletrequest 인터페이스를 통해 브라우저 요청의 쿠키 데이터에 액세스합니다 (여기서 쿠키의 전체 이야기를 이해해 보겠습니다. 코드는 나중에 제공됩니다).
각 쿠키는 키와 값의 두 가지 속성이 있습니다 (특정 형식 문자열 없음, DIY에 데이터를 저장할 수 있지만 URL 인코딩 문제에주의를 기울여야합니다. 인코딩 문제는 나중에 코드와 함께 논의됩니다).
새 쿠키를 저장 해야하는 경우 새 쿠키 인스턴스를 새로 보아서 httpservletrsponse를 통해 브라우저에 제출 한 다음 로컬로 보관할 수 있습니다.
다음은 쿠키의 일반적인 수업입니다
/ * *이 클래스는 쿠키에서 브라우저 요청에서 쿠키를 추출하고 관련 작업을 수행 할 수 있습니다. */public class 쿠키는 basecontroller {/** * 이름으로 쿠키 받기 * * @param request * @param name * 쿠키 이름 * @return */public static kookie getCookieByName (httpservleRquest 요청, 문자열) readCookiemap (요청); if (cookiemap.containskey (name)) {쿠키 쿠키 = (쿠키) cookiemap.get (name); 쿠키 반환; } else {return null; }} / ** * 쿠키를지도에 캡슐화 * @param request * @return * / private static map <string, 쿠키> readCookieMap (httpservletRequest 요청) {map <문자열, 쿠키> cookiemap = new Hashmap <String, Cookie> (); 쿠키 [] 쿠키 = request.getCookies (); if (null! = 쿠키) {for (쿠키 쿠키 : 쿠키) {cookiemap.put (cookie.getName (), 쿠키); }} Cookiemap을 반환합니다. } / ** * 쿠키 저장 * * @param 응답 * 서블릿 요청 * @param value * 저장 값 * @author jxf * / public static httppservletresponse setcookie (httpservletresponse 응답, 문자열 이름, 문자열 값, int 시간) {// new cookie 객체, 키-쿠키 쌍 = 새로운 쿠키 쿠키 (new cookie) (이름, 가치); // 멀티-애플리케이션 공유 cookie.setpath ( "/"); // 쿠키의 값에 중국어가 포함 된 경우 쿠키를 인코딩해야합니다. 그렇지 않으면 차량 코드가 생성됩니다. try {urlencoder.encode (value, "utf-8"); } catch (UnsupportedEncodingException e) {e.printstacktrace (); } cookie.setMaxage (시간); // 응답에 쿠키를 추가하여 응답을 가져옵니다. AddCookie (쿠키); // AddCookie 이후, 이름이 같은 쿠키가 이미 존재하면 최신 쿠키 리턴 응답을 덮어 씁니다. }위의 일반 수업을 통해 새로운 쿠키를 읽고 만들 수 있습니다. 여기에서 한 가지 언급하고 싶습니다. 새 쿠키의 이름이 이미 존재하면 반복적으로 추가되지 않으며 이전 쿠키가 덮어 쓸 것입니다.
브라우저는 요청 된 쿠키와 반환 된 쿠키를 어떻게 보나요? 바보 같은 구글 브라우저를 사용하십시오
그런 다음 쿠키를 삭제해야 할 수도 있습니다
/** * <p> 유효하지 않은 쿠키 삭제 </p> * <p> invalid? 1. 쓸모없는 2. 출판되지 않음 </ p> * @param request * @param response * @param list */ private void delectCookieByname (httpservletRequest request, httpservletResponse 응답, 문자열 deletekey) {12 map <string, 쿠키> Cookiemap = readCookiemap (17 for key); cookiemap.keyset ()) {if (key == deletekey && key.equals (deletekey)) {쿠키 쿠키 = cookiemap.get (key); 21 Cookie.setMaxage (0); // 쿠키 유효성 시간을 0 Cookie.SetPath ( "/")로 설정합니다. // 스토리지 경로 응답을 설정하지 마십시오. }}}쿠키 삭제에는 시간과 경로 매개 변수가 모두 있어야합니다. 그렇지 않으면 일부 브라우저는 삭제할 수 없습니다.
위의 것은 브라우저 쿠키에 읽고 쓸 수있는 Java의 데이터 모음입니다. 우리는 향후 관련 정보를 계속 추가 할 것입니다. 이 사이트를 지원 해주셔서 감사합니다!