JSP | Objetos implícitos: solicitud y respuesta

Prerrequisito: Introducción a JSP
JSP significa Java Server Pages, y es una tecnología del lado del servidor. Se utiliza para crear aplicaciones web y contenido web dinámico. La propiedad principal de JSP es que podemos insertar nuestro código Java dentro de nuestra página HTML usando la etiqueta JSP. JSP le proporciona páginas independientes de la plataforma.
 

html

<%@ page language = "java" contentType = "text/html; charset = UTF-8"
    pageEncoding = "UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset = UTF-8">
<title>Insert title here</title>
</head>
<body>
 
<!-- Here we are going to insert our Java code-->
 
<% Geeks saying hello to JSP %>
</body>
</html>

Los objetos implícitos son un conjunto de objetos Java que el contenedor JSP pone a disposición de los desarrolladores en cada página. Se puede acceder a estos objetos como variables integradas a través de elementos de secuencias de comandos y también se puede acceder mediante programación mediante JavaBeans y Servlets. JSP le proporciona un total de 9 objetos implícitos que son los siguientes 
 

  1. solicitud : este es el objeto de la clase HttpServletRequest asociado con la solicitud.
  2. respuesta : este es el objeto de   la clase HttpServletResponse asociado con la respuesta al cliente.
  3. config : este es el objeto de la clase ServletConfig asociado con la página.
  4. aplicación : este es el objeto de la clase ServletContext asociado con el contexto de la aplicación.
  5. sesión : este es el objeto de la clase HttpSession asociado con la solicitud.
  6. contexto de página : este es el objeto de la clase PageContext que encapsula el uso de funciones específicas del servidor. Este objeto se puede utilizar para buscar, obtener o eliminar un atributo.
  7. objeto de página : de la misma manera que usamos la palabra clave this para el objeto actual, el objeto de página se usa para referirse a la clase de servlet traducida actual.
  8. excepción : el objeto de excepción representa todos los errores y excepciones a los que accede el jsp respectivo. El objeto implícito de excepción es del tipo java.lang.Throwable .
  9. out: este es el objeto PrintWriter donde métodos como print e println ayudan a mostrar el contenido al cliente.

En este artículo, se analizan dos de los objetos principales que son solicitud y respuesta. 

Objeto de solicitud
La solicitud JSP es un objeto implícito proporcionado por HttpServletRequest. En el servlet, primero tenemos que importar javax.servlet.http.HttpServletRequest y luego tenemos que crear su objeto para recibir entradas de cualquier formulario HTML como. 
Sintaxis:

import javax.servlet.http.HttpServletRequest;

public class LoginServlet extends HttpServlet 
{  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
                    throws ServletException, IOException 
          { 
              HttpSession session = request.getSession()
          }
}

En JSP, el objeto de solicitud se define implícitamente para que no tenga que crear un objeto. El objeto de solicitud JSP es creado por el contenedor web para cada solicitud del cliente. Se usa para obtener el valor del parámetro, el nombre del servidor, el puerto del servidor, etc.
En el siguiente ejemplo, estamos usando un objeto de solicitud para mostrar el nombre de usuario. 

html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "Geeks.jsp"> 
<input type = "text" name = "username"> 
<input type = "submit" value = "submit"><br/> 
</form>
</body>
</html>

Producción 
 

objeto de respuesta

Este es el objeto HttpServletResponse asociado con la respuesta al cliente. El objeto de respuesta también define las interfaces que se ocupan de la creación de nuevos encabezados HTTP. A través de este objeto, el programador JSP puede agregar nuevas cookies o sellos de fecha, códigos de estado HTTP, etc. 
 

html

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  
String name=request.getParameter("username"); 
out.print("Welcome "+ name); 
%>   
</body>
</html>

Producción 
 

En JSP, el objeto de respuesta está definido implícitamente, por lo que no tiene que crear un objeto. El objeto de respuesta JSP es creado por el contenedor web para cada solicitud del cliente. Básicamente se utiliza para redirigir a cualquier otro recurso. 
En el siguiente ejemplo, usamos el objeto de respuesta para enviar al usuario a la página de inicio de Geeksforgeeks.
 

html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GeeksforGeeks</title>
</head>
<body>
<%  
//below line in JSP redirect you to geeksforgeeks page
response.sendRedirect("geeksforgeeks.org");
%>
</body>
</html>

Producción 
 

Ventaja de JSP sobre servlet: 
 

  • Los servlets son más difíciles de codificar que JSP. De otra manera, podemos decir que JSP es el reemplazo de los Servlets.
  • En los servlets, tanto el código estático como el código dinámico se combinan. En JSP, están separados.
  • Los objetos de PrintWriter, ServletConfig, ServletContext, HttpSession y RequestDispatcher, etc. son creados por el Programador en Servlets. Pero en JSP, están incorporados y se conocen como objetos implícitos.

Desventaja: 
 

  • Las páginas JSP requieren más memoria para contener la página.
  • El resultado está en HTML, que no es rico para los espectadores.

Publicación traducida automáticamente

Artículo escrito por Shahnawaz_Ali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *