jsp-servlets

publicité
Servlets et Jsp avec
Tomcat et Eclipse
F.Pfister ([email protected])
Plan











Introduction: Serveur web, HTML
Cycle d’un Serveur HTTP
Pourquoi des documents dynamiques ?
Avantages d’une servlet java
Servlet et jsp
Une servlet simple
Une Jsp simple
Java côté serveur
Tomcat
Paramétrage d’une application web
Démarrer avec les jsp
2
IUP MIC 2005
Introduction: Serveur web, HTML




L’utilisateur tape une URL dans son navigateur web
Le navigateur envoie une requête au serveur
Le serveur retourne un document au navigateur
Le navigateur traduit (renders) ce document
Si le document est un document HTML, on peut en voir le source (menu
Afficher la source)

Quelques éléments HTML de base:


HREF
TABLE
voir http://wp.netscape.com/assist/net_sites/table_sample.html

FORM
Voir tutoriels HTML sur le web.
3
IUP MIC 2005
Cycle d’un Serveur HTTP





Lire les méta-données envoyées par le client : en-têtes
(headers) de requête
Lire les données explicites envoyées par le client (données
de formulaire GET ou POST)
Générer le résultat (en interrogeant éventuellement d’autres
serveurs: bases de données, Ejb, etc…)
Envoyer les méta-données au client: codes de statut et entêtes (headers) de réponse
Envoyer les données explicites au client (HTML)
4
IUP MIC 2005
Pourquoi des documents dynamiques ?

La page web est basée sur des données émises par
le client



La page web est basée sur des données qui changent
fréquemment


Par exemple, une page de résultat pour un moteur de recherche ou
une confirmation de commande
une page de catalogue d’un site marchand
Exemple: site météo, site de news
Les pages web utilisent l’information fournie par une
base de données ou un autre serveur de données

Exemple: un site de commerce électronique utilise une servlet pour
établir une liste des articles disponibles avec leur prix et leur
quantité
5
IUP MIC 2005
Avantages d’une servlet java

Efficace


Pratique


S’exécute sur tous les OS et tous les serveurs
Sûre


Partage de données, pools d’objets
Portable


Existence d’une bibliothèque d’utilitaires très riche
Puissante


Une servlet est un thread java (léger) et non un processus (lourd)
de l’OS. C’est une instance unique, qui reste chargée en mémoire.
Pas d’appels au shell, pas de débordements de mémoire
Economique

Il existe de nombreux serveurs gratuits ou peu chers
6
IUP MIC 2005
Servlet et jsp





Une Jsp (Java Server Page) est un document html
traité par le serveur.
Une Jsp est un document HTML comportant des
parties de code supplémentaires (code java, ou
tags spécifiques)
Le résultat de ce traitement est une Servlet
Cette Servlet délivre (en général) du code HTML
pur au client
Contrairement à une applet, ce n’est pas le
navigateur client qui exécute le code java inclus
dans la JSP ou la Servlet, mais le serveur
7
IUP MIC 2005
Une servlet simple
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldExample extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>première servlet</title>");
out.println("</head>");
out.println("<body>");
out.println(« <h1>bonjour</h1>");
out.println("</body>");
out.println("</html>");
}
}
8
IUP MIC 2005
Une Jsp simple
<html>
<head><title>ma première jsp</title></head>
<body>
<h1>
Bonjour
<% out.println(request.getParameter("nom").toString()); %>
</h1>
</html>
9
IUP MIC 2005
Java côté serveur
Points clés
 ASP (Microsoft) et PHP sont des technologies
semblables aux Servlets/JSP.
 JavaScript est une technologie côté client,
développée à l’origine par Netscape.
 L’applet Java est une technologie côté client,
développée par Sun.
10
IUP MIC 2005
Tomcat




Tomcat est un serveur Jsp-Servlet très
populaire.
Il est couplé avec Eclipse au travers d’un
plug-in, le débogage des jsp est possible.
Les jsp sont recompilées automatiquement
par Tomcat en cas de modification.
Les servlets et autres classes Java sont
rechargées à chaud en cas de modification, il
n’est pas nécessaire de redémarrer le
serveur.
11
IUP MIC 2005
Paramétrage d’une application web
Une application web doit être paramétrée dans le cas
des servlets, par un fichier web.xml:
<web-app >
<servlet>
<servlet-name>helloservlet</servlet-name>
<servlet-class>test.servlet.HelloWorldExample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloservlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
12
IUP MIC 2005
Démarrer avec les jsp
Quelques directives de base

scriptlet
<% // ici code java %>

expression
<%= unePersonne.getNom() %>
Est équivalent de:
<% out.println(unePersonne.getNom() ) %>

import d’une classe
<%@ page import = "exo2.Personne" %>

Inclusion d’un fichier
<%@ include file = "unAutre.html" %>

Déclaration et instanciation d’un objet
<jsp:useBean id="unePersonne" class="exo2.Personne"/>
Est équivalent de
<% exo2.Personne unePersonne = new exo2.Personne(); %>
Cette directive, de plus , affecte l’objet au contexte de page (voir cours
suivant)
13
IUP MIC 2005
Téléchargement