Está en la página 1de 17

Investigación de Conceptos

Cristian Santiago Triana Larrota - 20221578014

Docente:
Noé Arcos Muñoz

Universidad Distrital Francisco José de Caldas


Facultad Tecnológica
Tecnología en Sistematización de Datos
Programación Avanzada
Grupo 303-3
Bogotá D.C
2023
JSP

¿Qué es?

JSP son las siglas de Java Server Pages. Es una tecnología del lado del servidor que se
utiliza para crear páginas web dinámicas. Las páginas JSP están escritas en una
combinación de HTML y código Java. El código Java se utiliza para realizar tareas
dinámicas, como acceder a bases de datos, procesar la información introducida por el
usuario y generar resultados. El código HTML se utiliza para definir el diseño y la
apariencia de la página web.

¿Para qué sirve?

• Las páginas JSP son dinámicas, lo que significa que pueden actualizarse sin tener
que recompilar el código Java.
• Las páginas JSP son independientes de la plataforma, lo que significa que pueden
ejecutarse en cualquier servidor compatible con Java.
• Las páginas JSP son fáciles de aprender y utilizar, incluso para los principiantes.

Ejemplo

<%@page import="java.util.*"%>
<HTML>
<BODY>
<%!
Date the Date=new Date(); Date getDate()
{
System.out.println("In getDate() method"); return theDate;
}
%>
Hello! The time is now<%=getDate()%>
</BODY>
</HTML>

Servlet

¿Qué es?

Servlet son las siglas de Server-side Java Applet. Es una clase Java que se ejecuta en
un servidor web y puede utilizarse para generar contenidos dinámicos. Los servlets se
utilizan para ampliar las capacidades de un servidor web y pueden emplearse para
procesar datos de formularios, generar imágenes y acceder a bases de datos.

¿Para qué sirve?

• Los servlets son dinámicos, lo que significa que pueden actualizarse sin necesidad
de reiniciar el servidor web.
• Los servlets son independientes de la plataforma, lo que significa que pueden
ejecutarse en cualquier servidor que admita Java.
• Los servlets son escalables, lo que significa que pueden utilizarse para gestionar
un gran número de peticiones.
Ejemplo

public class HelloServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws IOException {
response.setContentType("text/html");
response.getWriter().println("<h1>Hello, World!</h1>");
}
}

Objetos Request y Response

¿Qué es?

El objeto request representa la solicitud HTTP que envía el cliente al servidor. El objeto
request contiene información sobre la solicitud, como el método HTTP, la URL, los
parámetros de la consulta y los encabezados.

El objeto response representa la respuesta HTTP que envía el servidor al cliente. El


objeto response se utiliza para enviar contenido al cliente, como texto, HTML, imágenes,
etc.

¿Para qué sirve?

Los objetos request y response se utilizan para intercambiar información entre el cliente
y el servidor. El objeto request se utiliza para enviar información del cliente al servidor, y
el objeto response se utiliza para enviar información del servidor al cliente.

Ejemplo

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserServlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// Obtener la ID del usuario
int userId = Integer.parseInt(request.getParameter("id"));

// Obtener la información del usuario


User user = UserRepository.findById(userId);

// Establecer el tipo de contenido


response.setContentType("application/json");

// Enviar la información del usuario


response.getWriter().write(new Gson().toJson(user));
}
}

Método Get

¿Qué es?

El método GET es un método HTTP que se utiliza para recuperar datos del servidor. Los
datos se envían en la URL de la solicitud. El método GET es idempotente, lo que significa
que se puede realizar varias veces sin tener ningún efecto.

¿Para qué sirve?

El método GET se utiliza para recuperar datos del servidor. Por ejemplo, se puede utilizar
el método GET para recuperar una lista de productos de una tienda online, para obtener
el contenido de una página web o para obtener información sobre el servidor.

Ejemplo

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ProductListServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// Obtener la lista de productos
List<Product> products = ProductRepository.findAll();

// Establecer el tipo de contenido


response.setContentType("application/json");

// Enviar la lista de productos


response.getWriter().write(new Gson().toJson(products));
}
}

Método Post

¿Qué es?

El método POST es un método HTTP que se utiliza para enviar datos al servidor. Los
datos se envían en el cuerpo de la solicitud. El método POST no es idempotente, lo que
significa que, si se realiza varias veces, se puede enviar el mismo dato varias veces

¿Para qué sirve?

El método POST se utiliza para enviar datos al servidor. Por ejemplo, se puede utilizar el
método POST para crear una nueva cuenta en una tienda online, para enviar un
formulario de contacto o para subir un archivo.

Ejemplo

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserRegistrationServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// Obtener los datos del usuario
String name = request.getParameter("name");
String email = request.getParameter("email");
// Crear el usuario
User user = new User(name, email);

// Guardar el usuario en la base de datos


UserRepository.save(user);

// Redirigir al usuario a la página de inicio


response.sendRedirect("/");
}
}

Patrón de diseño DAO

¿Qué es?

El patrón de diseño DAO (Data Access Object) es un patrón de diseño de software que
separa la lógica de acceso a datos de la lógica de negocio. Esto permite que la lógica de
negocio se concentre en las tareas de negocio, mientras que la lógica de acceso a datos
se encarga de la interacción con la base de datos.
¿Para qué sirve?

• Abstracción: El patrón de diseño DAO abstrae la lógica de acceso a datos de la


lógica de negocio. Esto permite que la lógica de negocio se concentre en las
tareas de negocio, mientras que la lógica de acceso a datos se encarga de la
interacción con la base de datos.
• Flexibilidad: El patrón de diseño DAO permite utilizar diferentes tecnologías de
acceso a datos. Esto facilita el cambio de tecnologías de acceso a datos sin
afectar a la lógica de negocio.
• Mantenibilidad: El patrón de diseño DAO facilita el mantenimiento del código. La
lógica de negocio y la lógica de acceso a datos están separadas, lo que facilita la
comprensión y el mantenimiento del código.

Ejemplo

interface Dao<T> {

T findById(long id);
List<T> findAll();
T save(T entity);
T update(T entity);
void delete(long id);
}

class UserDao implements Dao<User> {

@Override
public User findById(long id) {
// Implementación...
}

@Override
public List<User> findAll() {
// Implementación...
}

@Override
public User save(User entity) {
// Implementación...
}

@Override
public User update(User entity) {
// Implementación...
}
@Override
public void delete(long id) {
// Implementación...
}
}

Patrón de Diseño DTO

¿Qué es?

El patrón de diseño DTO (Data Transfer Object) es un patrón de diseño de software que
se utiliza para transferir datos entre diferentes componentes de una aplicación. Los DTO
son objetos planos que contienen solo los datos que se necesitan transferir.

¿Para qué sirve?

• Transferencia de datos: Los DTO se utilizan para transferir datos entre diferentes
componentes de una aplicación. Esto facilita la transferencia de datos entre
componentes que utilizan diferentes formatos de datos.
• Encapsulación de datos: Los DTO encapsulan los datos que se necesitan
transferir. Esto facilita la modificación de los datos sin afectar a los componentes
que los utilizan.
• Reducción de la complejidad: Los DTO reducen la complejidad de las
aplicaciones. Esto facilita la comprensión y el mantenimiento de las aplicaciones.

Ejemplo

interface DTO {

class UserDTO implements DTO {

private String name;


private String email;

public UserDTO(String name, String email) {


this.name = name;
this.email = email;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}
}

Patrón de Diseño Interface

¿Qué es?

El patrón de diseño Interface es un patrón de diseño de software que define un contrato


que deben cumplir las clases que implementan la interfaz. Las interfaces se utilizan para
abstraer la funcionalidad de las clases.
¿Para qué sirve?

• Abstracción: Las interfaces abstraen la funcionalidad de las clases. Esto permite


que las clases que implementan la interfaz compartan una interfaz común, sin
importar su implementación.
• Flexibilidad: Las interfaces permiten utilizar diferentes implementaciones de una
interfaz. Esto facilita el cambio de implementaciones sin afectar a las clases que
utilizan la interfaz.
• Mantenibilidad: Las interfaces facilitan el mantenimiento del código. Las clases
que implementan una interfaz no necesitan conocer la implementación de la
interfaz. Esto facilita la comprensión y el mantenimiento del código.

Ejemplo

interface Drawable {

void draw();
}

class Circle implements Drawable {

@Override
public void draw() {
// Dibuja un círculo
}
}

class Square implements Drawable {

@Override
public void draw() {
// Dibuja un cuadrado
}
}

Librería Javax

¿Qué es?

La librería javax es una librería de clases e interfaces que se utilizan para el desarrollo
de aplicaciones Java. Se divide en varios paquetes, cada uno de los cuales contiene
clases e interfaces relacionadas con un tema específico.

¿Para qué sirve?

• Para crear una GUI: La librería javax.swing proporciona clases e interfaces para
crear interfaces gráficas de usuario (GUI) de alta calidad. Estas GUI se pueden
utilizar en aplicaciones de escritorio, web, móviles y de servidor.
• Para desarrollar un servlet: La librería javax.servlet proporciona clases e interfaces
para desarrollar servlets. Los servlets son componentes web que se utilizan para
proporcionar contenido dinámico a las páginas web.
• Para acceder a una base de datos: La librería javax.sql proporciona clases e
interfaces para acceder a bases de datos. Estas clases e interfaces facilitan la
comunicación con una base de datos desde una aplicación Java.
• Para procesar XML: La librería javax.xml proporciona clases e interfaces para
procesar XML. Estas clases e interfaces facilitan el análisis, la creación y la
modificación de archivos XML.

Ejemplo

import javax.swing.*;

public class MyWindow {

public static void main(String[] args) {


JFrame frame = new JFrame("My Window");
JButton button = new JButton("Click me!");
frame.add(button);
frame.pack();
frame.setVisible(true);
}
}

Librería Jakarta

¿Qué es?

La librería Jakarta es una colección de módulos Java Enterprise Edition (EE) mantenidos
por la Fundación Eclipse. Estos módulos se basan en los módulos de Java EE 7, pero
han sido actualizados para incluir nuevas características y mejoras.

La librería Jakarta se utiliza para desarrollar aplicaciones Java EE. Se divide en varios
módulos, cada uno de los cuales contiene clases e interfaces relacionadas con un tema
específico.
¿Para qué sirve?

• Para crear una aplicación web: La librería Jakarta proporciona clases e interfaces
para crear aplicaciones web de alta calidad. Estas aplicaciones web se pueden
utilizar para proporcionar contenido dinámico e interactivo a los usuarios.
• Para desarrollar servicios web: La librería Jakarta proporciona clases e interfaces
para desarrollar servicios web. Los servicios web son componentes de software
que se pueden utilizar para intercambiar datos entre aplicaciones.
• Para acceder a datos persistentes: La librería Jakarta proporciona clases e
interfaces para acceder a datos persistentes. Estos datos pueden almacenarse en
una base de datos, un archivo o cualquier otro almacenamiento persistente.
• Para procesar mensajes: La librería Jakarta proporciona clases e interfaces para
procesar mensajes. Estos mensajes pueden ser utilizados para intercambiar
información entre aplicaciones.
• Para desarrollar aplicaciones empresariales: La librería Jakarta proporciona
clases e interfaces para desarrollar aplicaciones empresariales. Estas
aplicaciones son complejas y requieren un alto nivel de rendimiento y fiabilidad.

Ejemplo

package com.example.myapp;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/plain");
response.getWriter().println("Hello, World!");
}
}
Conclusión
En este trabajo de investigación, hemos explorado una variedad de conceptos esenciales
en el desarrollo de aplicaciones web Java. Comenzamos por entender qué son JSP
(JavaServer Pages) y Servlets, dos tecnologías fundamentales en la construcción de
aplicaciones web Java. Descubrimos que JSP es una tecnología de presentación que
permite la creación de páginas web dinámicas y Servlets son componentes Java que
gestionan las solicitudes y respuestas HTTP en el servidor.

Además, analizamos los objetos Request y Response, que son cruciales para la
comunicación entre el cliente y el servidor. El objeto Request contiene información sobre
la solicitud del cliente, mientras que el objeto Response se utiliza para enviar datos de
vuelta al cliente.

Exploramos los métodos POST y GET, que son dos de los métodos HTTP utilizados para
enviar datos entre el cliente y el servidor. El método POST se usa para enviar datos
confidenciales o grandes, mientras que el método GET se utiliza para solicitudes que no
requieren confidencialidad y envían datos a través de la URL.

También discutimos los patrones de diseño DAO (Data Access Object), DTO (Data
Transfer Object) e Interface, que son ampliamente utilizados en el desarrollo de
aplicaciones Java para garantizar una separación efectiva de la lógica de negocio y el
acceso a datos, y para facilitar la comunicación entre capas de la aplicación.

Finalmente, abordamos la diferencia entre las librerías javax y jakarta, señalando que
jakarta es la continuación de javax en el mundo de Java Enterprise Edition (EE) después
de una reorganización en la industria de Java. Ambas librerías son esenciales para el
desarrollo de aplicaciones web Java.

En resumen, este trabajo de investigación nos ha proporcionado una comprensión sólida


de los conceptos clave en el desarrollo de aplicaciones web Java, desde las tecnologías
de presentación como JSP hasta los patrones de diseño y las librerías utilizadas en el
desarrollo web. Estos conocimientos son esenciales para cualquier desarrollador web
Java que aspire a crear aplicaciones robustas y eficientes.
Bibliografía

• Introduction to JSP. (2018, julio 2). GeeksforGeeks.


https://www.geeksforgeeks.org/introduction-to-jsp/
• JSP Tutorial. (s/f). Www.javatpoint.com. Recuperado el 6 de septiembre de 2023,
de https://www.javatpoint.com/jsp-tutorial
• Follow, A. (2018, mayo 28). Introduction to java servlets. GeeksforGeeks.
https://www.geeksforgeeks.org/introduction-java-servlets/
• Embedded Jetty. (2021, julio 17). Happy Coding.
https://happycoding.io/tutorials/java-server/embedded-jetty
• Servlets tutorial. (s/f). Tutorialspoint.com. Recuperado el 6 de septiembre de 2023,
de https://www.tutorialspoint.com/servlets/
• Gupta, A. (2014, septiembre 4). EJB 3.x : Lifecycle and Concurrency models (part
2). Java Code Geeks; Exelixis Media P.C.
https://www.javacodegeeks.com/2014/09/ejb-3-x-lifecycle-and-concurrency-
models-part-2.html
• HTTP methods GET vs POST. (s/f). W3schools.com. Recuperado el 6 de
septiembre de 2023, de https://www.w3schools.com/tags/ref_httpmethods.asp
• HTTP request methods. (s/f). Mozilla.org. Recuperado el 6 de septiembre de 2023,
de https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
• Using HttpSession. (s/f). Cosmiclearn.com. Recuperado el 6 de septiembre de
2023, de https://www.cosmiclearn.com/servlet/httpsession.php
• Design patterns: Elements of reusable object-oriented software. (1995). Addison-
Wesley Professional.
• Freeman, E., Robson, E., Bates, B., & Sierra, K. (2004). Head first design patterns:
A brain-friendly guide. O’Reilly Media.
• Bard - chat based AI tool from Google, powered by PaLM 2. (s/f). Google.com.
Recuperado el 6 de septiembre de 2023, de https://bard.google.com/
• Java platform SE 8. (s/f). Oracle.com. Recuperado el 6 de septiembre de 2023, de
https://docs.oracle.com/javase/8/docs/api/
• Evans, B. J., Clark, J., & Flanagan, D. (2023). Java in a nutshell: A desktop quick
reference (8a ed.). O’Reilly Media.
• Guindon, C. (s/f). Jakarta EE Specifications. Jakarta® EE: The New Home of
Cloud Native Java. Recuperado el 6 de septiembre de 2023, de
https://jakarta.ee/specifications/

También podría gustarte