====== Servlets parte II ======
En el proyecto que utilizamos en la parte anterior crearemos un nuevo servlet:
{{:dad2:pasted:20240206-102447.png}}
Tras eso creamos 2 url todas en minúsculas:
{{:dad2:pasted:20240206-102521.png}}
Si queremos cambiar las URL debemos ir a src/main/webapp/WEB-INF/web.xml:
{{:dad2:pasted:20240206-102723.png}}
Cuando abramos el archivo podemos cambiar del modo diseño al modo source para ver el xml pulsando en source:
{{:dad2:pasted:20240206-103023.png}}
A continuación veremos el siguiente código en XML:
{{:dad2:pasted:20240206-103152.png}}
Hola_Mundo
Hola_Mundo
com.organizacion.servlets.Hola_Mundo
Hola_Mundo
/holamundo
Hola_Mundo
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
MiSegundoSevlet
MiSegundoSevlet
com.organizacion.servlets.MiSegundoSevlet
MiSegundoSevlet
/nisegundosevlet
/segundaurl
===== 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¶m2=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("Primer Contexto");//Imprimimos la cabecera
for(Enumeration params= request.getParameterNames(); params.hasMoreElements();) {//Recorremos los parámetros de entrada
paramName=params.nextElement();
response.getWriter().append(paramName + ":" + request.getParameter(paramName) + "
");//Mostramos cada parámetro con su nombre acompañado de unsalto de línea
}
response.getWriter().append("");//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("Primer Contexto");//Imprimimos la cabecera
for(Enumeration params= request.getParameterNames(); params.hasMoreElements();) {//Recorremos los parámetros de entrada
paramName=params.nextElement();
response.getWriter().append(paramName + ":" + request.getParameter(paramName) + "
");//Mostramos cada parámetro con su nombre acompañado de unsalto de línea
}
response.getWriter().append("");//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:
{{:dad2:pasted:20240206-113227.png}}