Server response
El objeto HttpServletResponse es una clase proporcionada por el paquete javax.servlet.http y es utilizado para enviar una respuesta HTTP desde un servlet.
Un objeto HttpServletResponse es pasado como parámetro en el método service o en los métodos específicos (doGet, doPost, doPut, doDelete) de un servlet. A través de este objeto, puedes establecer el código de estado de respuesta, los encabezados HTTP y escribir el cuerpo de la respuesta.
Aquí hay algunos ejemplos de cómo utilizar el objeto HttpServletResponse en un servlet:
Estableciendo el código de estado de respuesta:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ResponseServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setStatus(HttpServletResponse.SC_OK);
}
}
Estableciendo encabezados HTTP en la respuesta:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ResponseServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Content-Type", "text/html");
response.setHeader("X-Custom-Header", "Value");
}
}
Escribiendo el cuerpo de la respuesta:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ResponseServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
}
}
https://www.tutorialspoint.com/servlets/servlets-client-request.htm
Para pasar un valor desde un servlet a una página JSP, puedes utilizar el objeto HttpServletRequest y el objeto RequestDispatcher.
Aquí hay un ejemplo que muestra cómo pasar un valor desde un servlet a una página JSP:
En el servlet, establece el valor que deseas pasar a la página JSP en un atributo del objeto HttpServletRequest utilizando el método setAttribute():
String message = "Hola desde el servlet";
request.setAttribute("mensaje", message);
Obtén un objeto RequestDispatcher para la página JSP que deseas mostrar. Esto se hace utilizando el método getRequestDispatcher() del objeto ServletContext:
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/pagina.jsp");
Nota: Asegúrate de ajustar "/pagina.jsp" al nombre de la página JSP que deseas mostrar.
Llama al método forward() del objeto RequestDispatcher para redirigir la solicitud a la página JSP:
dispatcher.forward(request, response);
En la página JSP, puedes obtener el valor que se pasó desde el servlet utilizando el objeto request y el método getAttribute():
<p><%=request.getAttribute("mensaje")%></p>
El código completo del servlet se vería así:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MiServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String message = "Hola desde el servlet";
request.setAttribute("mensaje", message);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/pagina.jsp");
dispatcher.forward(request, response);
}
}
El código completo de la página JSP se vería así:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Página JSP</title>
</head>
<body>
<p><%=request.getAttribute("mensaje")%></p>
</body>
</html>
Cuando el usuario solicita el servlet, se establece el valor "Hola desde el servlet" en un atributo del objeto HttpServletRequest utilizando el método setAttribute(). Luego, se obtiene un objeto RequestDispatcher para la página JSP y se llama al método forward() para redirigir la solicitud a la página JSP. En la página JSP, se obtiene el valor que se pasó desde el servlet utilizando el objeto request y el método getAttribute().