Este servlet recibe unos datos de usuario, los valida, y si el usuario es válido, guarda una serie de datos en la sesion de ese usuario y lo introduce en el sistema dependiendo de las características del usuario. Si no es válido se le muestra una página de error.
public class CAccesoSistema extends HttpServlet
{
private String usuario = ""; // Nombre del usuario pasado como parámetro al servlet
private String clave = ""; // Clave del usuario pasado como parámetro al servlet
private String grupo = "";
private String lenguaje = "";
private String pais = "";
private String pagina = "";
//Inicializar variables globales
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
//Procesar una petición HTTP Get
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
usuario = request.getParameter("usuario");
// Obtengo el valor del parámetro usuario
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
grupo = request.getParameter("clave");
// Obtengo el valor del parámetro clave de usuario **OJO** esto es un ejemplo, no tengo en cuenta cuestiones de encriptación ni de seguridad
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
grupo = request.getParameter("grupo");
// Obtengo el valor del parámetro grupo de usuario
}
catch(Exception e)
{
e.printStackTrace();
}
// Obtenemos el idioma en el que va a aparecer el texto de la página generada
try {
lenguaje = request.getParameter("lenguaje");
}
catch(Exception e) {
e.printStackTrace();
}
boolean valido = validarUsuario(usuario,clave,grupo);
// Generamos la página de inicio
String pagina ="";
if (valido)
{
// Método, definido en este servlet, en el cual guardamos los parámetros del usuario en la sesion
GuardarPerfilUsuario(request.getSession(true));
// Si el usuario es el administrador no generamos la página de inicio, sino que
// lo redirigimos al jsp de gestión del sistema.
if (!grupo.equals("administracion"))
{ //Redirijo a la página del sistema
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/SICOA.jsp");
dispatcher.forward(request,response);
return;
}
else
{
// Redirijo a la página a la que accedería un administrador
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/Administracion.jsp");
dispatcher.forward(request,response);
return;
}
}
else
{
pagina = GenerarPaginaError();
// método de este servlet que genera una página de error por defecto
}
PrintWriter out = new PrintWriter (response.getOutputStream());
response.setContentType("text/html");
out.println(pagina);
out.close();
}