1.2 Servlet Finalizar 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 = "FinalizarSessao", urlPatterns = "/finalizarSessao") public class FinalizarSessaoDemoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title> Finzaliar Sessão </title>"); out.println("</head>"); out.println("<body>"); if (session != null) { String sessionID = session.getId(); session.invalidate(); out.println("<h1 align='center'>Sessão de ID "+ sessionID + " foi encerrada!</h1>"); out.println("Para obter uma nova sessão clique no link abaixo!"); } else { out.println("Não existe nenhuma sessão registrada! Para se registrar clique no link abaixo!"); } out.println("<br /> <a href='iniciarSessao'> Obter Sessão</a>"); out.println("</body>"); out.println("</html>"); } }
Observe que o servlet acima utiliza o método “getSession” da interface “javax.servlet.http.HttpServletRequest” sempre com o parâmetro “false”. Isso significa que o método somente retornará uma sessão se ela já existir, caso contrário retornará NULL. Desta forma, o servlet acima obtém apenas sessões pré-existentes, o que significa que ele, por completo ou apenas em partes, pode ser considerado um componente de acesso restrito nesta aplicação web composta por dois servlets. Isso quer dizer que o usuário apenas verá a mensagem restrita com o ID da sessão se houver uma sessão preexistente.