Servlet en Java
- ¿Qué es Servlet?
- Ventajas de usar Servlet
- Cómo crear un servlet en Java
- Paquetes importantes para Servlet
- Clases de servlet
- Interfaces de servlet
Este tutorial presenta qué es un servlet y cómo crear un servlet en Java.
¿Qué es Servlet?
Servlet es una tecnología del lado del servidor que se utiliza para crear aplicaciones web en Java. Crea aplicaciones web dinámicas y proporciona una API que consta de varias clases e interfaces para administrar la aplicación.
Ventajas de usar Servlet
Antes del servlet, se usaba un programa CGI (Common Gateway Interface
) para crear programas del lado del servidor que tenían varios problemas de rendimiento. Servlet tiene la ventaja sobre CGI y ofrece las siguientes ventajas:
- Mayor rendimiento gracias al concepto de subprocesos múltiples
- Sin dependencia de la plataforma
- Portátil
- Seguro y protegido gracias al código de bytes de Java.
Cómo crear un servlet en Java
Hay varias formas de crear una aplicación de servlet, como usar cualquiera de las siguientes clases o interfaces:
- Implementar la interfaz
Servlet
- Heredar la clase
GenericServlet
- Heredar la clase
HttpServlet
Estas son algunas clases e interfaces que se utilizan para crear una aplicación de servlet. Contienen métodos como doPost()
y doGet()
para manejar solicitudes HTTP.
Una aplicación de servlet sigue una estructura de directorio / proyecto específica y consta de algunos pasos necesarios, como:
- Crea un servlet
- Crea un descriptor de implementación
- Implementar la aplicación de servlet en un servidor (apache tomcat).
Como dijimos anteriormente, para crear un servlet, necesitamos extender la clase HttpServlet
y anular sus métodos. Aquí, estamos usando el método doGet()
para manejar las solicitudes Get.
El siguiente es un código de servlet básico.
Crear un servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
private String msg;
public void init() throws ServletException {
// Do required initialization
msg = "Hello Servlet";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Setting content type for response
response.setContentType("text/html");
// printing msg to browser in h1 heading
PrintWriter out = response.getWriter();
out.println("<h1>" + msg + "</>");
}
public void destroy() {
// code to execute while destroy servlet.
}
}
Producción:
Este código de servlet imprimirá el siguiente mensaje en el navegador.
Crear el descriptor de implementación
Este es un archivo XML que contiene información sobre el servlet y el contenedor web obtiene toda la información de este archivo. Este archivo utiliza varias etiquetas como <web-app>
, <servlet>
, <servlet-mapping>
, etc.
Todos se utilizan para configurar la información del contenedor. El contenedor usa un analizador para extraer esta información.
Vea un descriptor de servlet (web.xml) para nuestra clase HelloServlet.
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/helloservlet</url-pattern>
</servlet-mapping>
</web-app>
Después de crear este archivo XML, compile el archivo de servlet e implemente el proyecto completo en un servidor web como apache tomcat. Esta es una aplicación web, por lo que requiere un servidor para ejecutarse.
Después de implementar el proyecto, inicie el servidor y acceda al servlet ingresando la URL de mapeo del navegador ‘helloservlet’.
Paquetes importantes para Servlet
La API de servlet contiene dos paquetes principales que contienen todas las clases e interfaces.
javax.servlet
javax.servlet.http
Clases de servlet
Estas son algunas clases de servlets de uso frecuente:
GenericServlet
ServletInputStream
ServletOutputStream
ServletRequestWrapper
ServletResponseWrapper
ServletRequestEvent
ServletContextEvent
HttpServlet
Cookie
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionEvent
Interfaces de servlet
Estas son algunas de las interfaces de servlet de uso frecuente:
Servlet
ServletRequest
ServletResponse
RequestDispatcher
ServletConfig
ServletContext
Filter
FilterConfig
FilterChain
ServletRequestListener
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionListener