In diesem Artikel werden hauptsächlich relevante Informationen zu den Gründen vorgestellt, warum Servlet Cookie den Wert in Java nicht erreichen kann
Lösung für den Grund, warum Servlet Cookie den Wert in Java nicht abrufen kann
Phänomene:
Beim Testen der HTTP-Anfrage mit Cookie wurde es gefunden dass der Server request.geter("cookie") den Wert abrufen kann, request.getCookies() jedoch nicht (Except)
Cookie mycookies[] = request.getCookies();Grund:
Ich habe den spezifischen Cookie-Wert des Browsers überprüft und festgestellt, dass
http://localhost: 8080/
Beim Zugriff das Cookie Der Wert wird unter „localhost“ platziert und die vom Server automatisch generierte SESSIONID wird ebenfalls unter dem Localhost-Pfad gespeichert. http://127.0.0.1:8080/
Beim Zugriff wird der Cookie-UID-Wert unter 127.0.0.1:8080 und das Cookie unter 127.0.0.1:8080 platziert Das Servlet auf der Serverseite kann es nie abrufen und die vom Server automatisch generierte SESSIONID liegt unter 127.0.0.1, was sich vom UID-Speicherort unterscheidet.
Wenn der Server also Cookies ausgibt, muss
inString host=request.getHeader("host");geändert werden oder die Einstellung
if(host.indexOf(":")>-1){ host=host.split(":")[0]; }aufgegeben werden Dies Der Cookie-Wert wird ebenfalls unter 127.0.0.1 gespeichert und hat nichts mit der Portnummer zu tun
mycookie.setDomain(host);Wenn der Server bereits einen Domänennamen hat, gibt es natürlich keinen Cookie-Wert, der nicht abgerufen werden kann unter der Portnummer
Fügen Sie die vorherige Zeile hinzu, um sie zu erhalten,
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass Servlet Cookie den Wert in Java nicht abrufen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!