1.1 Servlet Iniciar Sessão
package br.aiec; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet(name = "IniciarSessao", urlPatterns = "/iniciarSessao") public class IniciarSessaoDemoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Integer contador = (Integer)session.getAttribute("contador"); if(contador != null){ contador++; }else{ contador = 1; } session.setAttribute("contador", contador); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title> Iniciar Sessão </title>"); out.println("</head>"); out.println("<body>"); if (session.isNew()) { out.println("Olá. Seja bem vindo pela primeira vez. Esse é o acesso de número " + contador); } else { out.println("Seja bem vindo novamente! Esse é o acesso de número" + contador); } out.println("<br /> <a href='finalizarSessao'>Finalizar Sessão</a>"); out.println("</body>"); out.println("</html>"); } }
Observe que o servlet acima tem a capacidade de contar a quantidade de requisições GET por sessão do cliente. Um ponto importante que deve ser observado é a forma simples de como se obtém o objeto de sessão. O método “getSession” da interface “javax.servlet.http.HttpServletRequest” deve ser sempre utilizado sem qualquer tipo de parâmetro. Observe que tanto para criar uma nova sessão, como para obter aquelas já existentes, a responsabilidade é totalmente do container web. Isso significa que o container faz todo o trabalho de identificação da sessão de forma automática, ou seja: