DigitalOcean, un eccezionale servizio di Cloud Hosting, da provare! Inoltre, suggerendolo puoi guadagnare :)

lunedì 2 febbraio 2009

Servlet - utilissimo mezzo per incapsulare il codice

Sviluppando applicazioni web in JSP capita spesso di riempire di centinaia di righe di codice le nostre pagine web. Un metodo per incapsulare il codice è utilizzare le Servlet e spostare il codice al loro interno. Per sviluppare applicazioni web di questo tipo utilizzo Tomcat, un "servlet container" e web server sviluppato interamente in Java. Vediamo come sviluppare una JavaServlet, cioè una particolare applicazione Java che gestisce un flusso HTTP.
Possiamo costruire una servlet scrivendo una classe Java che erediti le caratteristiche della classe HttpServlet. Questa può essere richiamata da una pagina Jsp per effettuare lavori come calcoli, ricerche, elaborazioni di vario genere. In pratica può essere considerata una "estensione" dell'application server. Mostriamo come sviluppare una Servlet che effettui il controllo sulla stringa digitata dall'utente e richiami la pagina corretta:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class Main extends HttpServlet {

public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String categoria = request.getParameter("categoria");
String jspPage = "";

if ( categoria.equals("politica") )
{
jspPage = "pagine/politica.jsp";
}
else if ( categoria.equals("finanza") )
{
jspPage = "pagine/finanza.jsp";
}
else if ( categoria.equals("sport") )
{
jspPage = "pagine/sport.jsp";
}
else
jspPage = "pagine/error.jsp";

response.sendRedirect(jspPage);
}

}

Una volta scritta e compilata bisognerà registrare questa classe come Servlet nella nostra applicazione web. Per fare ciò, creiamo nella cartella della nostra applicazione una cartella WEB-INF ed all'interno una cartella classes. Dentro la cartella WEB-INF andrà creato il file web.xml così fatto:


<?xml version="1.0" encoding="UTF-8"?>



<!DOCTYPE web-app

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/Web-app_2_3.dtd">



<web-app>

<servlet>

<servlet-name>MainServlet</servlet-name>

<servlet-class>Main</servlet-class>

</servlet>



<servlet-mapping>

<servlet-name>MainServlet</servlet-name>

<url-pattern>/MainUrl</url-pattern>

</servlet-mapping>



<session-config>

<session-timeout>30</session-timeout>

</session-config>



</web-app>


Questo file XML permette di registrare la servlet nella nostra applicazione. Da qui impostiamo il nome della servlet (MainServlet), la classe corrispondente (Main) e l'Url tramite il quale verrà richiamata dal form nelle pagine Web (MainUrl). Dopo aver creato questo file, spostiamo il file Main.class nella cartella WEB-INF/classes e riavviamo Tomcat. Alla fine la struttra dovrà essere così fatta:

La struttura delle cartella

A questo punto non ci resta che riavviare Tomcat ed aprire nuovamente l'applicazione col browser. Quando cliccheremo sul tasto Show, il submit del form richiamerà la servlet Main.class, questa verrà eseguita ed alla fine verrà richiamata la pagina Jsp corrispondente (error, finanza, politica o sport).

Nessun commento:

Posta un commento

DigitalOcean, un eccezionale servizio di Cloud Hosting, da provare! Inoltre, suggerendolo puoi guadagnare :)

Cerca su Wiki

Cerca su Google

Cerca nel Blog con Google