Crear un Servlet
Para crear un Servlet, previamente necesitaremos tener instalados y configurados el JDK de Java, Apache Tomcat y Eclipse.
¿Qué es un Servlet? Es una clase java que extiende de la clase javax.servlet.http.HttpServlet. Normalmente se utilizan para realizar operaciones petición/respuesta a través del protocolo HTTP. Los Servlet se ejecutan sobre un servidor, por ejemplo Apache Tomcat.
A continuación, vamos a crear uno.
Con Eclipse abierto haz clic en el menú File -> New -> Dynamic Web Project.
Completa la información con el nombre del proyecto y revisa que la información esté correcta eligiendo el Servidor Apache que tengas instalado.
Creación de un Servlet en Eclipse
Con el proyecto seleccionado, ejecuta File -> New -> Servlet. A continuación, presiona Next -> Next, activa la casilla Generate web.xml deployment descriptor para generar el fichero web.xml por si en un futuro queremos añadir configuraciones relacionadas con nuestro proyecto web. Pulsa Finish.
Completa la información sobre el Servlet. Observa la siguiente imagen:
Una vez creado el Servlet en Java Resources/src/rosamarfil.es/MyServlet.java, modifica el método DoGet() e introduce:
//Redireccionar a página de inicio
getServletContext().getRequestDispatcher(«index.jsp»).forward(request, response);
package rosamarfil.es;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Mensaje desde método doGet desde MyServlet</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Mensaje desde método doPost desde MyServlet</h1>");
}
}
Crear de páginas
Crea la página index.jsp en WebContent. Esta página será la primera que mostrará el navegador web. En ella añadiremos dos botones que llamarán a los métodos Post y Get.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>Hola, este texto se escribe desde la página JSP.</p>
<form action="MyServlet" method="GET">
<button type="submit">Get Mensaje</button>
</form>
<br>
<form action="MyServlet" method="POST">
<button type="submit">Post Mensaje</button>
</form>
</body>
</html>
Ejecutar nuestro Servlet
Sobre el proyecto, muestra el menú contextual y ejecuta Run As -> Run on Server. Asegúrate que está Apache como Servidor seleccionado y presiona Finish.
Se mostrará una página web incrustada dentro de Eclipse.
También puedes probar la aplicación en un navegador web introduciendo http://localhost:8080/MyDynamicWebProject/ en la barra de direcciones.
Presiona los botones y observa los resultados.
Lo más normal, cuando un usuario realice una acción desde la web, primero se ejecute el método doGet (petición) y tras ejecutar dicha acción se ejecute el método doPost (respuesta).
Si introducimos la dirección http://localhost:8080/MyDynamicWebProject/MyServlet en nuestro navegador, se ejecutará el método doGet.
¡Gracias por leerme! Nos vemos en el próximo tutorial.