2008-10-07 12 views
10

मैं कुकी maxage प्राप्त नहीं कर सकता यह हमेशा रिटर्न -1कुकी getMaxAge

बनाना कुकी:

Cookie securityCookie = new Cookie("sec", "somevalue"); 
securityCookie.setMaxAge(EXPIRATION_TIME); 

पुनः प्राप्त कुकी:

Cookie[] cookies = request.getCookies(); 
if (cookies != null) { 
    for(int i=0; i<cookies.length; i++) { 
     Cookie cookie = cookies[i]; 
     if ("sec".equals(cookie.getName())){ 
      int age = cookie.getMaxAge(); 
     } 
    } 
} 

मैं हमेशा उम्र = -1

हो रही है

जब भी मैं फ़ायरफ़ॉक्स कुकी समाप्ति में जांच करता हूं तो मुझे अजीब तारीख दिखाई देती है।

Thx

+0

आप इस समस्या को कैसे दूर करते हैं? मैं एक ही समस्या के साथ संघर्ष कर रहा हूं और मुझे कोई जवाब नहीं दिख रहा है। –

+0

@ ब्रूनो डी फ़्रेन द्वारा उत्तर मान्य है, कृपया इसे नीचे पढ़ें – Jeevanantham

उत्तर

1

एपीआई का कहना है कि इसका मतलब है -1 तक ब्राउज़र चल रहा है:

, कुकी, सेकंड में निर्दिष्ट की अधिकतम आयु देता है डिफ़ॉल्ट रूप से, -1 कुकी का संकेत तक बना रहेगा ब्राउज़र शटडाउन

EXPIRATION_TIME निरंतर का मूल्य क्या है?

+0

जब आप प्रतिक्रिया ऑब्जेक्ट में भेजने के लिए कुकी बना रहे हैं तो आप केवल कुकी आयु पैरामीटर का उपयोग करें। API एक कुकी बनाने का जिक्र कर रहा है। अनुरोध में आने वाले डेटा को समाहित करने के लिए एक ही "कुकी" ऑब्जेक्ट का उपयोग किया जाता है, लेकिन अनुरोध किसी भी "आयु" पैरामीटर नहीं भेजता है। बहुत बुरा नहीं है SET और GET के लिए अलग-अलग ऑब्जेक्ट्स नहीं हैं (विभिन्न HTTP शीर्षलेख कुकी के समानांतर करने के लिए: और सेट-कुकी। – ChrisCantrell

0

मूल्य ब्राउज़र द्वारा संशोधित किया जा सकता है।

आप एक कुकी बनाते हैं और अधिकतम आयु निर्धारित करना चाहते हैं। कुकी ब्राउज़र पर भेजी जाती है। ब्राउज़र कुकी को अस्वीकार कर सकता है या अपनी पॉलिसी के लिए बहुत अधिक उम्र को अनदेखा कर सकता है। यह संशोधित कुकी आपके आवेदन पर वापस भेज दी गई है।

अपनी ब्राउज़र सेटिंग्स की जांच करें।

0

सिर्फ grins के लिए, क्या आप जावास्क्रिप्ट का उपयोग कर ब्राउज़र से कुकी का मूल्य पुनर्प्राप्त कर सकते हैं?

इसके अलावा, क्या आप अपने सर्वलेट/जेएसपी से पहले एक फ़िल्टर डाल सकते हैं ताकि आप servlet/jsp सेट के बाद कुकी के मूल्य की जांच कर सकें?

12

जब कोई ब्राउज़र मूल सर्वर पर कुकी भेजता है, तो इसमें कोई आयु शामिल नहीं होती है। तो यह तर्कसंगत है कि उपरोक्त आपके "पुनर्प्राप्ति" कोड को अधिकतम आयु प्राप्त नहीं होती है: यह अनुरोध में शामिल नहीं है।

जब कुकी सर्वर से प्राप्त होती है, तो ब्राउजर अधिकतम आयु पैरामीटर का उपयोग करता है यह निर्धारित करने के लिए कि कुकी कितनी देर तक रखी जानी चाहिए; उम्र को कभी भी सर्वर पर संप्रेषित नहीं किया जाता है, एक कालबाह्य कुकी को त्याग दिया जाता है। अनुरोध को संसाधित करते समय, यदि आप कुकी की उम्र को नवीनीकृत करना चाहते हैं, तो प्रतिक्रिया में कुकी को दोबारा शामिल करें।

RFC में "मूल सर्वर पर कुकीज़ भेजना" अनुभाग भी देखें।

+2

दूसरे शब्दों में, ब्राउज़र आपके साथ maxAge साझा नहीं करता है। आपको पता नहीं है। माफ़ कीजिये। –

संबंधित मुद्दे