Recent comments

Estructura Simple de Servlet Project

Estructura Simple de Servlet Project (Maven project) y Uso de Cookies:

Estructura del proyecto



Manejo Cookies: Servlet bajo la anotacion de Webservlet
Dependencias: javaee
src\main\webapp\index.html: archivo inicial (WEB-INF carpeta de configuracion)
pom.xml: archivo de maven: es necesario el empaquetamiento war, el build y la dependencia de javaee.

<code ManejoCookies>
package cookies;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet(name = "ManejoCookies", urlPatterns = {"/ManejoCookies"})
public class ManejoCookies extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //Declaramos la variable contador
        int contador = 0;

        //Si existe, obtenemos el contador de visitas actual
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie c : cookies) {
                if (c.getName().equals("contadorVisitas")) {
                    try {
                        //Obtenemos el valor del contador de visitas actual
                        contador = Integer.parseInt(c.getValue());
                    } catch (NumberFormatException e) {
                        //En caso de error, reiniciamos el contador de visitas
                        contador = 0;
                    }
                }
            }//fin del for
        }//fin del if

        //incrementamos el contador de visitas
        //y lo agregamos la cookie en la respuesta
        contador++;
        Cookie c = new Cookie("contadorVisitas", Integer.toString(contador));
        //La cookie se almacenará en el cliente por 1 hora (3600 seg)
        c.setMaxAge(3600);
        response.addCookie(c);

        //Mandamos el mensaje al navegador
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Contador de visitas de cada cliente: " + contador);
    }

    //para peticiones doPost
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}

//metodo para procesar peticiones es opcional
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
  
  }
}
</code>

<code pom.xml>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mx</groupId>
  <artifactId>Servlet1</artifactId>
  <version>1.0</version>
  <packaging>war</packaging>
  
  <name>Servlet1</name>
  
  
  <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>8.0</version>
        </dependency>

  </dependencies>
  
      <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  
  
</project>
</code>

<code index.html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Ejemplo de Contador de Visitas</title>
    </head>
    <body>
        <h1>Ejemplo de Contador de Visitas</h1>
        <br>
        <a href="/Servlet1/ManejoCookies">
          Link al Servlet Contador de Visitas
        </a>
    </body>
</html>

</code>

Puedes optar por omitir la anotacion del descriptor en la clase ManejoCookies y agregar el archivo web.xml en la carpeta WEB-INF, esto produciría el mismo resultado.


<code web.xml>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>ManejoCookiesController</servlet-name>
        <servlet-class>cookies.ManejoCookies</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ManejoCookiesController</servlet-name>
        <url-pattern>/ManejoCookies</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

</code>


Proyecto Completo



No hay comentarios.