====== 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}}