package io.bitbucket.NombreDeUsuario.jee04.servlets; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; 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( urlPatterns = { "/ServletLeerAtributosSesion", "/leer-atributos-de-sesion" } ) public class ServletLeerAtributosSesion extends HttpServlet { private String tablaAtributosSesion(HttpServletRequest request) { StringBuffer tablaHtml = new StringBuffer(); HttpSession sesion = request.getSession(false); if (sesion == null) { /* Sesión no existente */ tablaHtml.append("¡¡¡ERROR!!!"); } else { /* Sesión ya existente */ HttpSession sesionActual = request.getSession(); synchronized (sesionActual) { tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); Enumeration atributos = sesionActual.getAttributeNames(); while (atributos.hasMoreElements()) { String atributo = atributos.nextElement(); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); tablaHtml.append(""); } tablaHtml.append(""); tablaHtml.append("
Tabla de Atributos en Sesión
AtributoValor
" + atributo + "" + sesionActual.getAttribute(atributo) + "
"); } } return tablaHtml.toString(); } private String generarDocumentoHtml(HttpServletRequest request, boolean sesionNoExistente) { StringBuffer documentoHtml = new StringBuffer(); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append("ServletLeerAtributosSesion"); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append(""); documentoHtml.append("
"); documentoHtml.append("
"); documentoHtml.append("

ServletLeerAtributosSesion

"); documentoHtml.append("
"); documentoHtml.append("
"); documentoHtml.append(""); documentoHtml.append("
"); documentoHtml.append("
"); if (sesionNoExistente) { documentoHtml.append("

¡No ha creado o iniciado una sesión

"); } else { documentoHtml.append(this.tablaAtributosSesion(request)); } documentoHtml.append("
"); documentoHtml.append("
"); documentoHtml.append(""); documentoHtml.append(""); return documentoHtml.toString(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean sesionNoExistente; HttpSession sesion = request.getSession(false); if (sesion == null) { /* Sesión no existente */ sesionNoExistente = true; } else { /* Sesión ya existente */ sesionNoExistente = false; } response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter salida = response.getWriter(); salida.println(this.generarDocumentoHtml(request, sesionNoExistente)); } }