Servlet – Cookies de credenciales

Una cookie es un tipo de dato que se guarda en el ordenador del cliente. Para poder detectar usuarios recurrentes, debes pasar por tres fases .

  1. El script del servidor envía una colección de cookies al navegador. Nombre, edad o número de identidad, por ejemplo.
  2. El navegador guarda esta información en el sistema local para uso futuro.
  3. Cuando el navegador envía una solicitud al servidor web la siguiente vez, transmite la información de las cookies al servidor, que el servidor utiliza para identificar al usuario.

Usaremos cookies de servlet para desarrollar un ejemplo de inicio y cierre de sesión aquí. Los siguientes archivos fueron desarrollados para esta aplicación.

  1. índice.html
  2. enlace.html
  3. iniciar sesión.html
  4. ServletLogin.java
  5. ServletLogout.java
  6. ServletProfile.java
  7. web.xml

Ejemplo

Las estructuras del proyecto se verán así.

índice.html:

HTML

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="ISO-8859-1">  
<title>GeeksForgeeks Credential Cookies Example</title>  
</head>  
<body>  
    
  <h1>Welcome to GeeksForGeeks</h1>  
  <a href="login.html">Login</a>|  
  <a href="ServletLogout">Logout</a>|  
  <a href="ServletProfile">Profile</a>  
    
</body>  

enlace.html:

HTML

<a href="login.html">Login</a>  
<a href="ServletLogout">Logout</a>   
<a href="ServletProfile">Profile</a>  
<hr>  

iniciar sesión.html:

HTML

<form action="ServletLogin" method="post">  
Name:<input type="text" name="name"><br>  
Password:<input type="password" name="password"><br>  
<input type="submit" value="login">  
</form>

ServletLogin.java:

Java

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;  
public class ServletLogin extends HttpServlet {  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
                           throws ServletException, IOException {  
        response.setContentType("text/html");  
        PrintWriter out=response.getWriter();  
            
        request.getRequestDispatcher("link.html").include(request, response);  
            
        String name=request.getParameter("name");  
        String password=request.getParameter("password");  
            
        if(password.equals("geeksforgeeks")){  
            out.print("You are successfully logged in to GFG!");  
            out.print("<br>Welcome, "+name);  
                
            Cookie ck=new Cookie("name",name);  
            response.addCookie(ck);  
        }else{  
            out.print("sorry, username or password is wrong");  
            request.getRequestDispatcher("login.html").include(request, response);  
        }  
        out.close();  
    }    
}

ServletLogout.java:

Java

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;  
public class ServletLogout extends HttpServlet {  
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  
                        throws ServletException, IOException {  
        response.setContentType("text/html");  
        PrintWriter out=response.getWriter();  
            
            
        request.getRequestDispatcher("link.html").include(request, response);  
            
        Cookie ck=new Cookie("name","");  
        ck.setMaxAge(0);  
        response.addCookie(ck);  
            
        out.print("you are successfully logged out!");  
    }  
}

ServletProfile.java:

Java

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;  
public class ServletProfile extends HttpServlet {  
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  
                          throws ServletException, IOException {  
        response.setContentType("text/html");  
        PrintWriter out=response.getWriter();  
            
        request.getRequestDispatcher("link.html").include(request, response);  
            
        Cookie ck[]=request.getCookies();  
        if(ck!=null){  
         String name=ck[0].getValue();  
        if(!name.equals("")||name!=null){  
            out.print("<b>Welcome to GfG Profile</b>");  
            out.print("<br>Welcome, "+name);  
        }  
        }else{  
            out.print("Login first");  
            request.getRequestDispatcher("login.html").include(request, response);  
        }  
        out.close();  
    }  
}

web.xml:

XML

<web-app>   
  <servlet>  
    <description></description>  
    <display-name>ServletLogin</display-name>  
    <servlet-name>ServletLogin</servlet-name>  
    <servlet-class>ServletLogin</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>ServletLogin</servlet-name>  
    <url-pattern>/ServletLogin</url-pattern>  
  </servlet-mapping>  
  <servlet>  
    <description></description>  
    <display-name>ServletProfile</display-name>  
    <servlet-name>ServletProfile</servlet-name>  
    <servlet-class>ServletProfile</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>ServletProfile</servlet-name>  
    <url-pattern>/ServletProfile</url-pattern>  
  </servlet-mapping>  
  <servlet>  
    <description></description>  
    <display-name>ServletLogout</display-name>  
    <servlet-name>ServletLogout</servlet-name>  
    <servlet-class>ServletLogout</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>ServletLogout</servlet-name>  
    <url-pattern>/ServletLogout</url-pattern>  
  </servlet-mapping>  
</web-app>

Producción:

Ejecute el archivo index.html y obtendrá el siguiente resultado

haga clic en el perfil sin iniciar sesión

ahora haga clic en el enlace de inicio de sesión y escriba el nombre de usuario y la contraseña

Esta pantalla se mostrará después de un inicio de sesión exitoso

Ahora haga clic en el perfil nuevamente después de iniciar sesión, puede ver la página del perfil ahora

Después de hacer clic en cerrar sesión, se mostrará esta pantalla

Publicación traducida automáticamente

Artículo escrito por sanketnagare y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *