Servlets parte II

En el proyecto que utilizamos en la parte anterior crearemos un nuevo servlet:

Tras eso creamos 2 url todas en minúsculas:

Si queremos cambiar las URL debemos ir a src/main/webapp/WEB-INF/web.xml:

Cuando abramos el archivo podemos cambiar del modo diseño al modo source para ver el xml pulsando en source:

A continuación veremos el siguiente código en XML:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0">
  <servlet><!-- Declaramos un nuevo servlet -->
    <description></description>
    <display-name>Hola_Mundo</display-name>
    <servlet-name>Hola_Mundo</servlet-name>
    <servlet-class>com.organizacion.servlets.Hola_Mundo</servlet-class>
  </servlet><!-- Cerramos el Servlet -->
  <servlet-mapping> <!-- Permite acceder al servlet -->
    <servlet-name>Hola_Mundo</servlet-name><!-- Nombre de la clase -->
    <url-pattern>/holamundo</url-pattern><!-- URL del servlet -->
  </servlet-mapping>
  <display-name>Hola_Mundo</display-name><!-- Nombre que aparecerá en el listado de contextos -->
  <welcome-file-list><!-- Indicamos los ficheros que serán accesibles -->
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
 
 
  <servlet><!-- Declaramos un nuevo servlet -->
    <description></description>
    <display-name>MiSegundoSevlet</display-name>
    <servlet-name>MiSegundoSevlet</servlet-name>
    <servlet-class>com.organizacion.servlets.MiSegundoSevlet</servlet-class>
  </servlet><!-- Fin de la declaración del nuevo servlet -->
  <servlet-mapping>
    <servlet-name>MiSegundoSevlet</servlet-name>
    <url-pattern>/nisegundosevlet</url-pattern>
    <url-pattern>/segundaurl</url-pattern>
  </servlet-mapping>
</web-app>

Obtencion de parámetros mediante Query String

Para obtener parámetros después de la url añadimos un “?” Seguido de los parámetros separados por “&”:

localhost:8080/Hola_Mundo/nisegundosevlet?param1=valor&param2=valor&tmp=pablo

Para hacer funcionar esto debemos añadir lo siguiente a nuestro código dentro de doGet:

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
 
		String paramName ="";
		response.getWriter().append("<html><head><title>Primer Contexto</title></head><body>");//Imprimimos la cabecera
 
		for(Enumeration<String> params= request.getParameterNames(); params.hasMoreElements();) {//Recorremos los parámetros de entrada
			paramName=params.nextElement();
			response.getWriter().append(paramName + ":" + request.getParameter(paramName) + "<br>");//Mostramos cada parámetro con su nombre acompañado de unsalto de línea
		}
 
		response.getWriter().append("</body></html>");//cerramos el final del documento
 
 
		//response.getWriter().append("Patata: Served at: ").append(request.getContextPath());
 
	}

El código completo sería el siguiente:

package com.organizacion.servlets;
 
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.websocket.Extension.Parameter;
 
import java.io.IOException;
import java.util.Enumeration;
 
/**
 * Servlet implementation class MiSegundoSevlet
 */
public class MiSegundoSevlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MiSegundoSevlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
 
		String paramName ="";
		response.getWriter().append("<html><head><title>Primer Contexto</title></head><body>");//Imprimimos la cabecera
 
		for(Enumeration<String> params= request.getParameterNames(); params.hasMoreElements();) {//Recorremos los parámetros de entrada
			paramName=params.nextElement();
			response.getWriter().append(paramName + ":" + request.getParameter(paramName) + "<br>");//Mostramos cada parámetro con su nombre acompañado de unsalto de línea
		}
 
		response.getWriter().append("</body></html>");//cerramos el final del documento
 
 
		//response.getWriter().append("Patata: Served at: ").append(request.getContextPath());
 
	}
 
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
 
}

Este código nos mostrará lo siguiente en el navegador: