Estou tentando capturar o tempo de vida que meu Cookie possui, contudo apesar de eu setar o tempo de vida dele em um valor, a resposta é sempre: -1, ou seja, até que o navegador seja fechado. Segue duas classes, uma que evia o Cookie e a outra que recebe.
Não entendi muito bem o JSESSIONID, sempre que houver uma sessão(Cookie ou encodeURL) será criado um JSESSIONID? Ele é um Cookie que carrega o que? Informações sobre a Sessão?
CookieEnvia
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;
import javax.servlet.http.HttpSession;
public class CookieEnvia extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
HttpSession sessao = request.getSession(); // Obtendo uma sessao
sessao.setMaxInactiveInterval(12000); // Tempo que sessao levara para expirar
PrintWriter out = response.getWriter();
Cookie cookie = new Cookie("username", nome); // Criando um atributo nome/valor para um objeto Cookie
cookie.setMaxAge(12000); // Definindo quanto tempo o Cookie será armazenado no Cliente em segundos
out.println("Tempo para expirar: " + cookie.getMaxAge());
response.addCookie(cookie); // Enviando o Cookie para o Cliente encapsulado no objeto Response
out.println("Testanto evio de parametros via get");
out.println("nome: " + nome);
}
}
CookieRecebe
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;
import javax.servlet.http.HttpSession;
public class CookieRecebe extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("recebendo um cookie..");
Cookie[] cookies = request.getCookies();
for (Cookie var : cookies) {
if (var.getName().equals("username")) {
out.println("bem vindo: " + var.getValue());
out.println("Tempo para expirar: " + var.getMaxAge());
}
}
HttpSession sessao = request.getSession();
out.println("Tempo de duracao da sessao: " + sessao.getMaxInactiveInterval());
}
}
