En aquest tema, aprendrem a desenvolupar una aplicació web utilitzant Java. Ens centrarem en les tecnologies bàsiques necessàries per crear una aplicació web funcional, incloent-hi servlets, JSP (JavaServer Pages) i frameworks com Spring Boot. També veurem com desplegar l'aplicació en un servidor web.

Objectius del Tema

  • Entendre els conceptes bàsics de les aplicacions web.
  • Aprendre a utilitzar servlets i JSP per crear aplicacions web.
  • Introduir-se en l'ús de Spring Boot per simplificar el desenvolupament d'aplicacions web.
  • Desplegar una aplicació web en un servidor.

  1. Conceptes Bàsics d'Aplicacions Web

Què és una Aplicació Web?

Una aplicació web és un programa que s'executa en un servidor web i es pot accedir a través d'un navegador web. Les aplicacions web poden ser tan senzilles com una pàgina HTML estàtica o tan complexes com una aplicació de comerç electrònic.

Arquitectura d'una Aplicació Web

Les aplicacions web solen seguir una arquitectura de tres capes:

  1. Capa de Presentació: La interfície d'usuari, generalment implementada amb HTML, CSS i JavaScript.
  2. Capa de Lògica de Negoci: La lògica de l'aplicació, sovint implementada amb servlets, JSP o frameworks com Spring.
  3. Capa de Persistència: La base de dades o altres sistemes d'emmagatzematge de dades.

  1. Servlets i JSP

Servlets

Un servlet és una classe Java que s'executa en un servidor web i respon a les peticions HTTP. Els servlets són la base de moltes aplicacions web en Java.

Exemple de Servlet

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        response.getWriter().println("<h1>Hello, World!</h1>");
    }
}

Explicació:

  • @WebServlet("/hello"): Defineix la URL a la qual respondrà aquest servlet.
  • doGet: Mètode que maneja les peticions GET.

JSP (JavaServer Pages)

JSP és una tecnologia que permet crear pàgines web dinàmiques utilitzant Java. Les pàgines JSP es compilen en servlets.

Exemple de JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello JSP</title>
</head>
<body>
    <h1>Hello, <%= request.getParameter("name") %>!</h1>
</body>
</html>

Explicació:

  • <%= request.getParameter("name") %>: Inserta el valor del paràmetre "name" de la petició HTTP.

  1. Introducció a Spring Boot

Spring Boot és un framework que simplifica el desenvolupament d'aplicacions Java, incloent-hi aplicacions web. Proporciona configuració automàtica i una estructura de projecte predefinida.

Configuració del Projecte Spring Boot

  1. Crear un Projecte Spring Boot: Utilitza Spring Initializr (https://start.spring.io/) per generar un projecte Spring Boot.
  2. Dependències Necessàries: Assegura't d'incloure les dependències per a Spring Web.

Exemple de Controlador Spring Boot

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
        return String.format("Hello, %s!", name);
    }
}

Explicació:

  • @RestController: Indica que aquesta classe és un controlador REST.
  • @GetMapping("/hello"): Defineix la URL a la qual respondrà aquest mètode.
  • @RequestParam: Obté el paràmetre "name" de la petició HTTP.

  1. Desplegament d'una Aplicació Web

Desplegament en un Servidor Tomcat

  1. Descarregar i Instal·lar Tomcat: Descarrega Tomcat des de https://tomcat.apache.org/ i segueix les instruccions d'instal·lació.
  2. Desplegar l'Aplicació: Copia el fitxer WAR de la teva aplicació a la carpeta webapps de Tomcat.
  3. Iniciar Tomcat: Executa el script startup.bat (Windows) o startup.sh (Linux/Mac).

Desplegament en un Servidor de Producció

Per a desplegar en un servidor de producció, pots utilitzar serveis com AWS, Heroku o altres plataformes de núvol. Spring Boot facilita el desplegament amb suport integrat per a diversos serveis de núvol.

Exercicis Pràctics

Exercici 1: Crear un Servlet

  1. Crea un projecte web en Java.
  2. Implementa un servlet que respongui a la URL /greet i mostri un missatge de benvinguda.

Exercici 2: Crear una Pàgina JSP

  1. Crea una pàgina JSP que mostri un formulari amb un camp de text per al nom.
  2. Quan l'usuari enviï el formulari, mostra un missatge de benvinguda amb el nom introduït.

Exercici 3: Desenvolupar una Aplicació amb Spring Boot

  1. Crea un projecte Spring Boot utilitzant Spring Initializr.
  2. Implementa un controlador que respongui a la URL /welcome i mostri un missatge de benvinguda.

Solucions

Solució Exercici 1

@WebServlet("/greet")
public class GreetServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        response.getWriter().println("<h1>Welcome to our website!</h1>");
    }
}

Solució Exercici 2

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome Form</title>
</head>
<body>
    <form action="welcome.jsp" method="post">
        Name: <input type="text" name="name">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

welcome.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome, <%= request.getParameter("name") %>!</h1>
</body>
</html>

Solució Exercici 3

@RestController
public class WelcomeController {
    @GetMapping("/welcome")
    public String welcome(@RequestParam(value = "name", defaultValue = "Guest") String name) {
        return String.format("Welcome, %s!", name);
    }
}

Conclusió

En aquest tema, hem après els conceptes bàsics per desenvolupar una aplicació web en Java, incloent-hi l'ús de servlets, JSP i Spring Boot. També hem vist com desplegar una aplicació en un servidor web. Amb aquests coneixements, estàs preparat per crear aplicacions web més complexes i desplegar-les en entorns de producció.

Curs de Programació en Java

Mòdul 1: Introducció a Java

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

Mòdul 4: Programació Orientada a Objectes Avançada

Mòdul 5: Estructures de Dades i Col·leccions

Mòdul 6: Gestió d'Excepcions

Mòdul 7: Entrada/Sortida de Fitxers

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats