2012-06-15 25 views
10

que estoy tratando de conseguir galleta en servlet utilizandoObtención de cookie en servlet

Cookie[] cookie = request.getCookies(); 

pero cookie es siempre null.

Así que los configuro de otro servlet y aparecen en las preferencias del navegador.

Cookie cookie = new Cookie("color", "cyan"); 
cookie.setMaxAge(24*60*60); 
cookie.setPath("/"); 
response.addCookie(cookie); 

No entiendo lo que está mal?

+0

¿A dónde llamas este código? – adarshr

+0

¿El navegador accede a este otro servlet usando el mismo nombre de dominio, protocolo y puerto (por ejemplo, https://example.com:80). –

Respuesta

11

According to docsgetCookies() Devuelve una matriz que contiene todos los objetos de Cookie que el cliente envió con esta solicitud. Este método devuelve nulo si no se enviaron cookies.

¿Agregaste la cookie correctamente? Si es así, usted debe ser capaz de recorrer la lista de cookies vuelto con

Cookie[] cookies = request.getCookies(); 

for (int i = 0; i < cookies.length; i++) { 
    String name = cookies[i].getName(); 
    String value = cookies[i].getValue(); 
} 

Si no ...

Las cookies se agregan con el método addCookie(Cookie) en el objeto respuesta!

+0

Así que quiero decir que agrego cookies de otro servlet y ese servlet realmente agrega cookies, pero cuando estoy tratando de obtener request.getCookie() devuelve nulo – Anatoly

+7

Tenga en cuenta que "Este método devuelve nulo si no se enviaron cookies". El código dado fallará con NullPointerException al hacer cookies.length si getCookies() devuelve nulo – hectorg87

-2

primer lugar, se debe crear una cookie, y luego añadir a la respuesta

Cookie cookie = new Cookie(name,value); 
response.addCookie(cookie); 
+0

Agrego cookies de este modo desde otro servlet – Anatoly

+2

@Anatoly ¿Es el otro servlet en su mismo dominio y subdominio? – gcochard

1

¿Estás seguro de que el cliente es compatible con las cookies? porque si es configurar para no aceptar cookies, nunca se consigue de nuevo en una solicitud siguiente ...

9

conjunto de cookies

Cookie cookie = new Cookie("cookiename", "cookievalue"); 
    response.addCookie(cookie); 

GET COOKIE

Cookie[] cookies = request.getCookies(); 
    if(cookies != null) { 
     for (int i = 0; i < cookies.length; i++) { 
      cookie=cookies[i] 
      String cookieName = cookie.getName(); 
      String cookieValue = cookie.getValue(); 
     } 
    } 
+0

capaz de leer solo los alfabetos, no leyendo los alfanuméricos o símbolos especiales? ¿Cuál puede ser la causa? – Bhat

0

I Tuve el mismo problema y descubrí que la causa en mi caso era que estaba usando el navegador integrado en Eclipse. Esto no acepta cookies Cuando accedí al mismo JSP desde Chrome, funcionó. Quizás estás haciendo lo mismo que yo hice?

También puede ocurrir que el navegador que está utilizando o su configuración de Internet estén configurados para rechazar las cookies. Espero que esto lo ayude a usted o a cualquier otro visitante que tenga el mismo problema.