1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema com cookies

Olá galera estou fazendo um exemplo do livro da certificação, porém não está funcionando e não consigo entender porque. O exemplo é o seguinte tenho um formulário no qual seto um parametro e pego ele em um servlet chamado ServletConfiguration, daí a única coisa que faço é criar um cookie com o valor do parametro e passo pra outro servlet que pega o cookie e exibe ele. Mas não está funcionando, sempre que tento fazer parece que o valor do cookie está vazio :(

form.html

<h1>Formulário</h1>
    <form action="cookieconfig.do" method="get">
        <input type="text" name="nome" />
        <input type="submit" value="OK"/>
    </form>

CookieConfguration.java

package com.test.cookies;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class CookieConfiguration extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        String nome = request.getParameter("username");
        Cookie cookie = new Cookie("username", nome);

        cookie.setMaxAge(30*60);
        response.addCookie(cookie);

        RequestDispatcher view = request.getRequestDispatcher("/checkcookie.do");
        view.forward(request, response);
    }

}

CheckCookie.java

package com.test.cookies;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@SuppressWarnings("serial")
public class CheckCookie extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        Cookie[] cookies = request.getCookies();
        if(cookies != null){
            for(int i = 0; i < cookies.length; i++){
                Cookie cookie = cookies[i];
                if(cookie.getName().equals("username")){
                    String userName = cookie.getValue();
                    out.println("Olá: " + userName);
                    break;
                }
            }
        }
    }    
}

Um test que fiz também foi pelo tamanho do array de cookies, e retorna sempre dois, alguém sabe me explicar esse comportamento?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java java-ee servlets jsp certificação cookies ou faça a sua própria pergunta.