Installation d’un serveur Servlet-JSP
ESSI2
INSTALLATION
Un système serveur WEB-Servlets-JSP est installé sur morag.essi.fr . Ce serveur, programmé en Java pourra être lui-même client du serveur SQL Postgresql sur dbms.essi.fr
IL s'agit d'une version allégée du serveur Resin (http://www.caucho.com). Cette version allégée est disponible sur :
~rueher/BDR/resin-2.0.2Lite
Dans ce serveur vous trouverez les fichiers et répertoires suivants :
resin-2.0.2Lite/conf/resin.conf
Il contient les infos pour le lancement
du serveur:
le port de lancement : 8090
l’adresse (relative par rapport au répertoire resin-2.0.2Lite ) du répertoire racine des applications (doc dans la configuration livrée) ; ce répertoire contient tout ce qui constitue votre application Web : pages html, pages jsp , images, classes et packages Java), …
resin-2.0.2Lite/doc
Tout
ce qui constitue votre application WEB devra résider dans ce
répertoire (mais gardez aussi une copie chez vous !!) :
pages .html, pages .jsp, images .gif or .jpg, classes et/ou packages
Java, ….
Vous pouvez structurer ce répertoire en sous-répertoires.
resin-2.0.2Lite/doc/WEB-INF/classes
Si vous voulez créer
et utiliser du code java (classes et/ou packages) utilisées dans
vos pages .jsp, il vous faut mettre les sources xxx.java
dans ce sous-répertoire.
Le système se chargera de
les compiler automatiquement en
xxx.class. Vous devez
imperativement prefixer le nom de vos classes par votre propre nom)
Actuellement doc contient deux applications permettant d’effectuer des requêtes à une bases de données Postgresql :
marques.jsp est un exemple de requête à une table construite en fonction de certains critères entrés par l’usager grâce à un formulaire de saisie. Il n’utilise pas d’objet persistant entre les pages du client.
requete.jsp
permet de lancer n’importe quelle requête SQL. Il est programmé
avec la notion de ResultSetMetaData de
JDBC qui permet de connaître dynamiquement la liste des champs
d’une requête dont on ne connaît pas le texte à
l’avance.
Cette page utilise un package pgsql
qui se trouve dans le répertoire …/WEB-INF/classes,
et utilise également l’objet « session »
pour sauvegarder des données entre les pages du client (comme
par exemple l’objet qui représente la connexion à
SQL).
resin-2.0.2Lite/bin
Il
contient le binaire pour lancer et arrêter le serveur :
httpd.sh –h pour connaître la syntaxe
httpd.sh start pour lancer le serveur
httpd.sh stop pour arrêter le serveur
resin-2.0.2Lite/lib
Il contient les diverses librairies
java utilisées par le serveur Resin lui-même, ainsi que celles
utilisée par vos propres applications. Ce répertoire contient
déjà le pilote JDBC postgresql-8.1-407.jdbc2_1.jar
pour Postgresql.
APPEL DES PAGES DU SERVEUR
Une fois le serveur lancé sur votre station de travail votre-machine.essi.fr, vous pouvez appeler vos applications situées dans doc, depuis n’importe où, à l’aide d’un navigateur WEB (IE, Netscape,…) :
Si une page JSP doit être appelée avec des paramètres (récupérés dans cette page grâce à : request.getParameter(" NOM_DU_CHAMP ") ),
on peut alors fournir ces paramètres, soit à travers un formulaire de saisie, soit directement, comme pae exemple :
http://morag.essi.fr:8090/Marques/marques_result.jsp?NOM=Shalimar
RESUME DE QUELQUES COMMANDES JSP (JavaServerPages)
Ce sont des pages HTML contenant des balises java.
Les
importations de classes et librairies java sont balisées par
:
<%@ page
language="java" import="java.sql.*, java.math.* %>
Les
déclaration java qui définissent les champs du Servlet
qui représentera la page JSP, sont balisées par
<% ! ….%>. Ne les utiliser qu’en tête de page.
Exemple :
<%!
String chaine2; ........ %>
Le
code java à déclencher est balisé par <%
… %>.
Exemple :
<% …
user= "toto"; out.println ("<BR>" +
user); .... %>
Le
code Java à évaluer est balisé par <%=
….%>. Exemple :
<INPUT>...
<OPTION value="<%=codePays%>"
<%=nomPays%>... </INPUT>
Pour
récupérer les valeurs des champs envoyés par un
formulaire HTML :
<%
… request.getParameter("nom du champ"); … %>
Pour
écrire dans la page HTML en cours :
<%
… out.println ("..........");… %>
Pour
créer/récupérer un objet persistant appartenant
à une classe MaClasse
et nommé MonObj:
<jsp:useBean
id="MonObj" scope="session" class=MaClasse
/jsp>
Pour
utiliser cet objet pour le modifier, le lire et/ou déclencher
ses méthodes :
<%
… MonObj.nom= "toto" …
MonObj.decrire() … %>
DOCUMENTATION