2. ApacheTomcat
Componenti di ApacheTomcat
Web Application
Componenti di unWeb Application
Configurazione ambiente con Netbeans 8.x
Server Apache
Database
Esempio di Registrazione e Login
Tomcat Web Application Manager
Sommario
3. Scaricare Java SDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html
Scaricare Netbeans
https://netbeans.org/downloads/
Scaricare la versione MySQL Server (32-64 bit)
https://dev.mysql.com/downloads/mysql/
Prima di iniziare...
4. Scaricare e installare Java SDK
Scaricare Java SDK dal seguente link:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
7. ModelView Controller (MVC)
MVC e un utile pattern architetturale per la separazione dei compiti di un
software.
Model: Plain OldJavaScript Object (POJO) che trasporta i dati.
View: livello nel quale i dati sono rappresentanti in formato visuale.
Controller: componente responsabile per la comunicazione tra model e
view.
8. ApacheTomcat e un Application Server basato su Java Servlet
Tomcat implementa diverse specifiche:
Java Servlet
JavaServer Pages (JSP)
ect
Cose ApacheTomcat ?
(Client)
Browser
(Controller)
Servlet
(View)
JSP
(Model)
Java
Beans
Enterprise
Servers/
Data
sources
Architettura MVC
9. 1. Catalina
Contenitore di Servlet Java diTomcat
Fornisce leffettiva implementazione diTomcat, delle specifiche della
Servlet.
2. Coyote
Componente connettore HTTP diTomcat
Supporta il protocollo HTTP per il Web Server
Ascolta le connessioni in entrata su una specifica portaTCP, inoltra la
richiesta al motoreTomcat e processa la richiesta e manda indietro la
risposta al client.
3. Jasper
Analizza e converte le porzioni di codice allinterno delle pagine JSP in
Servlet e le passa a Catalina per processarle
Quando lanciato, cerca eventuali cambiamenti avvenuti ai file JSP e, se
necessario li ricompila.
Componenti diTomcat
10. Un Web component e un oggetto che estende le funzionalita di
unWeb Server aggiugendone di nuove:
Servlet
Java Server Pages (JSP)
ecc
I Web component sono in grado di accedere ai servizi offerti da un
Web container come:
Smistamento delle richieste
Sicurezza
Concorrenza
Gestione della memoria
Componenti di un Web Application (WA)
11. E una classe scritta in linguaggio Java che estende le capacit di un
server.
Le funzionalit principali di una Servlet sono:
Elaborazione o memorizzazione di dati provenienti da form HTML;
Generazione di contenuti dinamici (pagine Web) a seconda dei parametri
della richiesta inviata;
Gestione delle informazioni di stato che non esistono nel protocollo HTTP
stateless.
Comunicano attraverso un qualsiasi protocollo Client-Server, ma sono
principalmente utilizzate con il protocollo HTTP.
Java Servlet (Controller)
12. JSP e una tecnologia di programmazione Web in Java per lo
sviluppo diWA.
Forniscono contenuti dinamici in formato HTML o XML.
Si basa su un insieme di tag speciali con cui possono essere
invocate funzioni predefinite o codice Java (e.g., <% %>).
Puo essere vista come una rappresentazione ad alto livello di
una Servlet.
Java Server Page (View)
13. Classe che incapsula molti oggetti in un singolo oggetto (bean).
Classe Java appositamente costruita e programmata in accordo alle
specifiche delle API di JavaBeans.
Oggetti serializzabili che permettono laccesso a diverse proprieta
attraverso i cosiddetti metodi getter e setter.
Il modello rappresenta un oggetto POJO per il trasporto dei dati.
JavaBeans (Model)
Vantaggi Svantaggi
Controllo delle proprieta, eventi e metodi dei
beans esposti ad altre applicazioni.
E soggetto ad essere instanziato con un stato
invalido avendo un costruttore nullo.
Registra eventi da altri oggetti e puo generare
eventi da poter inviare ad altri oggetti.
Sono oggetti intrinsecamente mutabili mancando
cosi del vantaggio offerto dagli oggetti
immutabili.
Impostazioni di configurazione di un bean
possono essere memorizzati in modo persistente.
Il possedere molti metodi getter e setter puo
portare una quantita immensa di boilerplate code.
14. Una volta lanciato Netbeans...
Creare un nuovo progetto: JavaWeb-> Web Application
Configurazione dellambiente
15. Se non presente di default, aggiungere il Server ApacheTomcat 8.x
e modificare le credenziali utente diTomcat
Configurazione dellambiente
16. Selezionare la voce Services -> Cliccare su Properties
Configurare il Server ApacheTomcat
17. Selezionare la voce Services -> Cliccare su Start
Lanciare il Server ApacheTomcat
Permettere laccesso in rete di Java e Netbeans.
18. Configurare i ruoli daccesso aTomcat
Aprire il file tomcat-users.xml al path precedentemente copiato
Inserire la seguente riga in basso al file:
<user username=... password=... roles=manager-script,admin-gui,manager-gui />
19. Accedere alla GUI di ApacheTomcat
Aprire un browser e accedere al server locale diTomcat allindirizzo:
localhost:<server port> (e.g., localhost:9090)
Server Status: GUI per il
monitoraggio delle risorse
occupate dalla/e WA.
Manager App: GUI per la
visualizzazione dei dettagli
di una sessione e/o per la
rimozione di
attributi/variabili di
sessione.
20. Installare MySQL Server
1. Lanciare linstaller;
2. Scegliere come tipologia di installazione qualle custom;
3. Scegliere come prodotti:
1. MySQL Server 5.x
2. Connector/J 5.x
4. Impostare la password per lutente root;
5. Aggiungere (eventualmente) un nuovo utente con relativa
password;
6. Applicare/eseguire le configurazioni impostate.
Nota: In alternativa allo stesso modo di MySQL Server e possibile
utilizzare la versione di JavaDB pre-installata in Netbeans.
21. Configurazione Database Netbeans
Una volta scaricato e installato MySQL Server, effettuare i
seguenti steps:
1. Services -> Register MySQL Server;
2. Inserire il nome dellutente e password amministratore
impostati nella fase dinstallazione;
3. Cliccare Admin Properties ed inserire il path delleseguibile di
MySQL (mysqld.exe) alla voce Path to start command;
4. Connettersi al database, creare un database di test e
concedere allutente tutti i permessi al db appena creato.
5. Infine connettersi al database.
22. Configurazione Database Netbeans (cont.)
Creare una nuova tabella con gli attributi sotto riportati
Attributi
Name <VARCHAR>
Surname <VARCHAR>
City <VARCHAR>
University <VARCHAR>
Phone <VARCHAR>
Mail <VARCHAR>
Password <VARCHAR>
23. Configurazione Database Netbeans (cont.)
Aggiungere i driver JDBC all progetto
I driver JDBC Mysql sono al path:
C:Program FilesNetBeans 8.2idemodulesextmysql-connector-java-5.1.23-bin.jar
24. Esempio di Registrazione e Login
In questo semplice esempio vedremo come gestire:
1. Registrazione utente
2. Login utente
3. Visualizzazione utenti
Sara creata:
Una classe Database per effettuare semplici operazioni di
connessione al db, inserimento e reperimento dati da esso.
Diverse pagine JSP per la gestione dellinterfaccia grafica
dellaWA.
Infine alcune Servlet per lelaborazione dei dati ricevuti dal
front-end.
25. Singleton Class Database (1)
package classes;
import java.sql.*;
import java.util.logging.*;
public class Database {
//static reference to itself
private static Database dbIsntance;
public static final String URL = "jdbc:mysql://localhost/test;
public static final String USER = <tuo_utente>";
public static final String PASSWORD = <tua_password>";
public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static Connection con ;
private static Statement stmt;
private Database() { /* private constructor*/ }
1. Creare un proprio package (e.g., classes) nella cartella Source
Packages
2. Creare la Classe Database nel package appena creato
26. Singleton Class Database (2)
public static Database getInstance(){
if(dbIsntance == null) {
dbIsntance = new Database();
}
return dbIsntance;
}
public Connection getConnection(){
if(con==null) {
try {
Class.forName(DRIVER_CLASS);
con = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException | ClassNotFoundException ex) {
Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
}
}
return con;
}
}
33. Esercizio
Implementare un classe Servlet per la gestione del LogOut di un
utente
Rimozione della sessione
Redirezione alla pagina di login
34. WEB-INF: file di configurazione
web.xml: descrittore di distribuzione della WA.
Descrive le servlets e gli altri componenti che compongono laWA.
Utilizzato per limpostazione dei parametri dinizializzazione e per i vincoli
di sicurezza che si vuole fare rispettare allaWA.
Note: nel caso in cui tale file non sia disponibile nella cartellaWEB-INF al path: web/WEB-INF
del progetto, e possibile reperirlo dal materiale messo a disposizione sulla piattaforma
modificandolo appropriatemente.
classes: cartella contenente i file delle classi Java richieste dallaWA, che
include entrambe le classi Servlet e non-Servlet.
lib: cartella dei file JAR, contenenti i file delle classi JAVA richieste per laWA.
Librerie di classi di terze parti e/o driver JDBC.