GenericServlet implementa la interfaz Servlet y proporciona una implementación para todos sus métodos, excepto el método service() , por lo que es abstracto . La clase GenericServlet define un servlet independiente del protocolo (sin HTTP). Sin embargo, mientras creamos un sitio web o una aplicación en línea, es posible que deseemos tener un protocolo HTTP, en ese caso, debemos extender HttpServlet en lugar de GenericServlet. Desarrollar Servlet extendiendo GenericServlet es muy fácil porque tenemos que proporcionar implementación solo para el método service() . La clase GenericServlet está en el paquete javax.servlet (javax.servlet.GenericServlet).
método de servicio()
El prototipo del método service() es:
el servicio public void (ServletRequest req, ServletResponse resp) lanza ServletException, IOException
El servidor llama automáticamente a este método cada vez que llega una solicitud de un GenericServlet. El método service() acepta dos parámetros:
- Un ServletRequestObject
- Un SerlvetResponseObject
El objeto ServletRequest permite leer los datos proporcionados por la solicitud del cliente y el objeto ServletResponse se utiliza para enviar la respuesta al cliente.
Ejemplo de Servlet “Hello World” al extender la clase GenericServlet
Java
import java.io.*; import javax.servlet.*; public class MyFirstServlet extends GenericServlet { public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter pw = resp.getWriter(); pw.println("<html>"); pw.println("<head><title>My first Servlet</title></head>"); pw.println("<body>"); pw.println("<h2>Welcome To Servlet World!</h2>"); pw.println("</body>"); pw.println("</html>"); pw.close(); } }
Compilando el programa
Antes de que podamos compilar el programa, debemos configurar el archivo servlet-api.jar en nuestro classpath. Esto se debe a que el paquete javax.servlet está en este archivo jar. El archivo servlet-api.jar está disponible en la carpeta lib de Tomcat. Entonces, asumiendo que Tomcat está en la unidad h:\, nuestro comando para configurar classpath sería:
h:\Apache Software Foundation\Tomcat 8.0\lib\servlet-api.jar ;.;%classpath%
Ahora podemos compilar el código usando el comando javac habitual
javac MiPrimerServlet.java
Hacer esto generará el archivo MyFirstServlet.class que tendremos que implementar en nuestro servidor web
Desplegando el Servlet
Para desplegar el servlet en nuestro servidor web necesitamos hacer lo siguiente
- Crear una estructura de directorio adecuada
- Diseñe el archivo web.xml
- Coloque el archivo .class en el subdirectorio de clases de su aplicación
Crear el directorio
Para crear una aplicación web, debemos seguir la estructura de directorios estándar proporcionada por Sun Microsystem, que es independiente del servidor. De acuerdo con esto, una aplicación contiene una carpeta raíz de la aplicación con cualquier nombre.
- Debajo de la carpeta raíz, se requiere una subcarpeta con el nombre WEB-INF.
- Bajo WEB-INF se requieren dos subcarpetas llamadas clases y lib.
- Todos los archivos jar colocados dentro de la carpeta lib.
- Todos los archivos .class, incluido el archivo .class del servlet, se colocan dentro de la carpeta de clases.
- Todos los archivos de imagen, html, .js, jsp, etc. se colocan dentro de la carpeta raíz de la aplicación.
- También en la carpeta WEB-INF, debemos colocar el archivo web.xml
Archivo web.xml
- Las aplicaciones web de Java utilizan un archivo descriptor de implementación para determinar cómo se asignan las direcciones URL a los servlets.
- Este archivo se llama web.xml y reside en el directorio WEB-INF/ de la aplicación y es parte del estándar de servlet para aplicaciones web.
Diseño del archivo web.xml
XML
<web-app> <servlet> <servlet-class>MyFirstServlet</servlet-class> <servlet-name>MyFirstServlet</servlet-name> </servlet> <servlet-mapping> <servlet-name>MyFirstServlet</servlet-name> <url-pattern>/MyFirstServlet</url-pattern> </servlet-mapping> </web-app>
Configurando el Servlet
Una vez que la estructura del directorio esté en su lugar, podemos copiar el archivo MyFirstServlet.class dentro de la carpeta de clases de nuestra aplicación. Colocar el archivo .class dentro de la carpeta de clases es un requisito obligatorio para nuestro servlet.
Ejecute la aplicación
Después de que se haya realizado todo el despliegue, necesitamos probar nuestro servlet y para esto, debemos hacer lo siguiente:
- Inicie el servidor Tomcat haciendo clic en el archivo Tomcat 8.5 que se encuentra dentro de la carpeta bin de Tomcat.
- Abra el navegador y escriba la siguiente URL:
http://localhost:2021/sumit/MiPrimerServlet
Producción:
Publicación traducida automáticamente
Artículo escrito por absolute99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA