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 .
- El script del servidor envía una colección de cookies al navegador. Nombre, edad o número de identidad, por ejemplo.
- El navegador guarda esta información en el sistema local para uso futuro.
- 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.
- índice.html
- enlace.html
- iniciar sesión.html
- ServletLogin.java
- ServletLogout.java
- ServletProfile.java
- 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