Académique Documents
Professionnel Documents
Culture Documents
déployer des applications distribuées au sein d'une architecture standardisée. Elle est destinée aux gros
systèmes d'entreprise.
Les serveurs d'applications mettent à disposition les fonctionnalités permettant de réaliser des
applications d'entreprise, comme : communication entre ordinateurs, mis en place de protocole
adaptés, gestion des connexions avec une DB, présentation de pages Web, etc.
- Architecture multi-tiers :
Généralement, une application d'entreprise est composée de trois couches fondamentales (d'où le
terme décomposition en trois tiers) :
- Présentation - La logique métier - Persistance
Architecture 3 tiers
- Les servlets :
Il s'agit de programmes exécutés sur un serveur Web, qui servent de couche intermédiaire entre une
requête provenant d'un navigateur Web et un autre service HTTP.
Web.xml :
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>com.sdzee.servlets.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/toto</url-pattern>
</servlet-mapping>
- <servlet-name> : permet de donner un nom à une servlet, qui sera utilisé comme référence à la
servlet.
- <url-pattren> : permet de préciser la ou les urls relatives au travers desquelles la servlet sera
accessible.
Servlet.java :
class Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExceptin,
IOException {
PrintWriter out = response.getWriter() ;
out.println(″<html><head></head><body></body>″);
String nom = resquest.getParameter(″nom″);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptin,
IOException {
doGet(request,response);
}
Une servlet représente un CGI, et c'est un programme qui ne fonctionne qu'au sein d'un serveur Web.
Ce programme est spécialisé et adaptée au protocole HTTP. C'est le serveur Web qui se charge de le
démarrer au moment opportun.
L'interface ServletRequest définit plusieurs méthodes permettant de lire les données présentes dans
la requête :
- public String[] getParameterValues(String nom) : retourne les valeurs du paramètre dont le nom est
passé en argument.
- public Enumeration getParameterNames() : retourne une énumération des noms des paramètres de
la requête.
- public Map getParameterMap() : retourne tous les paramètres stockés dans un objet de type Map.
Chaque nom de paramètre est une clé.
- Chargement et instanciation.
- Initialisation.
- Fin de vie.
web.xml :
<servlet>
...
<init-param>
<param-name> jdbc.Driver </param-name>
<param-value> com.mysql.jdbc.Driver </param-value>
</init-param>
</servlet>
Dans une servlet, pour récupérer le nom de l’objet instancié dans le web.xml, on utilise la fonction
getInitParam() :
String pilote = getInitParam(″jdbc.Driver″) ;
Paramètres d’une application web :
web.xml :
<context-param>
<param-name> jdbc.Driver </param-name>
<param-value> com.mysql.jdbc.Driver </param-value>
</context-param>
Dans une servlet, pour récupérer le nom de l’objet instancié dans le web.xml, on utilise la fonction :
String pilote = getServletContext().getInitParam(″jdbc.Driver″) ;
Dans une application web, on peut gérer les exceptions renvoyé par la page, en redirigeant l’utilisateur
vers une page HTML où on lui affiche un message d’erreur.
web.xml :
<error-page>
<exception-type> java.lang.NumberFormatException </exception-type>
<location> WEB-INF/NumberIncorrect.html </location>
</error-page>
Les sessions :
Toutes les données constituant une session sont conservées sur le serveur dans l'application Web
correspondante.
Ensuite, lorsque la session est créée, on utilise les méthodes setAttribute() et getAttribute() de l’objet
créé afin de gérer cette session.
Les JSP sont des documents de type texte, contenant du code HTML ainsi que des scriptlets (et/ou des
expressions). Ces pages étant basées sur du code HTML ou XML.
Les pages JSP s'exécutent sous la forme de servlets. JSP définit des balises pour délimiter le code Java.
Les directives :
Les directives sont des éléments fournissant au conteneur des informations relatives à la page.
- page :
<%@ page attributs %>
ou en format XML
<jsp:directive.page attributs />
- include :
<%@ include file = "..." %>
ou en format XML
<jsp:directive.include file = "..." />
Une page JSP peut contenir plusieurs directives page. La directive include est employée pour inclure une
autre page, ou un fragment de page, dans la page JSP. Il peut s'agir d'un en-tête ou d'un pied de page.
Les scripts :
Les éléments de script permettent de placer du code java dans les pages JSP. Il en existe trois formes :
- les déclarations : employées pour déclarer, initialiser un attribut ou déclarer une méthode.
<%! déclaration %>
ou en format XML
<jsp:declaration>déclaration</jsp:declaration>
- les scriptlets : contiennent des instructions Java. Les scriptlets peuvent contenir n'importe quel code
Java valide.
<% fragment de code %>
ou en format XML
<jsp:scriptlet>fragment de code</jsp:scriptlet>
Il est possible de définir de nouvelles actions et les utiliser dans nos pages JSP.
Dans les pages JSP, il est toujours très difficile de lire ce mélange à la fois de code HTML et de code Java.
De préférable, utiliser une écriture plus proche du HTML en utilisant la syntaxe du XML.
<jsp:useBean> :
Cet élément permet de rendre un JavaBean (objet) accessible dans la page. C’est simplement une
classe Java respectant un certain nombre de conventions. Les plus importantes :
- La classe d'un JavaBean doit posséder un constructeur par défaut.
- La classe d'un JavaBean doit posséder un ensemble de propriétés.
public Personne() { }
<jsp:include> :
Elle est comme la directive <%@ page attributs %>, elle permet d’inclure une partie, de la page
appelée, au sein de la page jsp au moment de la compilation.
<jsp:include page="page.jsp">
<jsp:forward> :
Cette action permet de redirigé l’utilisateur vers une autre page jsp ou html.
<jsp:forward page="accueil.html">
- Java server pages Standard Tag Library (JSTL) :
JSTL est un ensemble de marqueurs standard permettant d’éviter le mélange du code Java et des
marqueurs XHTML. C’est l’ensemble standard d'actions personnalisées.
La JSP doit importer l’URI de la bibliothèque et choisir un préfixe. Il y a deux manières pour cela :
<%@ taglib uri="http://java.sun.com/jsl/jstl/core" prefix="c" %>
ou bien format XML
<jsp:root xmlns:jsp="htt://java.sun.com/JSP/Page" xlmns:c="http://java.sun.com/jsp/jstl/core">