Upload
ngohanh
View
231
Download
0
Embed Size (px)
Citation preview
Developpement Web - Servlet
Developpement Web - Servlet
Jean-Michel [email protected]
http://www.info.univ-angers.fr/pub/richer
M1/M2 Informatique - 2010-2011
1 / 30
Developpement Web - Servlet
Plan
Plan
1 Introduction
2 Le modele MVC
3 Structure d’un site
4 Mise en application
5 Bibliographie
2 / 30
Developpement Web - Servlet
Introduction
Programmation Web avec Java
Web + Java
◮ basee sur l’utilisation de Servlet
◮ generalement fondee sur une architecture de type MVC
◮ utilisation de JSP (Java Server Pages)
◮ utilisation de JSF (Java Server Faces)
◮ utilisation de framework (Spring, Hibernate, ...)
4 / 30
Developpement Web - Servlet
Introduction
Les Java Server Pages
Qu’est ce que les JSP
◮ equivalent d’une page PHP mais avec code en Java
◮ utilisation de balises : <% %> pour inserer du code Java
◮ utilisation de balises : <%= %> pour evaluer une expression
◮ les JSP sont traduites en Servlet par le Serveur Tomcat(code compile, non interprete)
◮ utilisation de variables globales (Session) ou temporaires(Request)
5 / 30
Developpement Web - Servlet
Introduction
Les Java Server Pages
Attention !
◮ la traduction JSP en Servlet n’est realisee qu’une seulefois
◮ le premier chargement de la page est donc plus long
6 / 30
Developpement Web - Servlet
Introduction
Balises JSP
Balises
◮ <% %> : scripts
◮ <%= %> : expressions
◮ <%! %> : declaration de variable
◮ <%@ %> : directives
7 / 30
Developpement Web - Servlet
Introduction
Directives JSP
directives
◮ <%@ page %> : definition de la page• language• contentType• pageEncoding• import•
◮ <%@ include file=’’ %> : inclusion de fichier dans lapage
8 / 30
Developpement Web - Servlet
Introduction
Exemple de page JSP
partie head
1 <%@ page language="java" contentType="text/html; charset=UTF-8"2 pageEncoding="UTF-8"3 import="com.openbook.view.*"4 import="com.openbook.persistence.*"5 %>6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"7 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">8 <html xmlns="http://www.w3.org/1999/xhtml">9 <head>
10 <title>...</title>11 ...12 </head>1314
9 / 30
Developpement Web - Servlet
Introduction
Exemple de page JSP
partie body
1 <body>2 <jsp:useBean id="user" class="com.project.model.User" scope="session" />3 <jsp:useBean id="person" class="com.project.model.Person" scope="request" />45 <%6 if (Page.allowed(out,user)==1) {7 %>89 <h1><% out.println("add new person"); %></h1>
1011 <%12 AuthorView.to html table(out,jsp author list,jsp author page);13 AuthorView.new and back panel(out);14 Page.page end(out);15 }16 %>1718 </body>19 </html>
10 / 30
Developpement Web - Servlet
Introduction
Les variables des pages JSP
Variables predefinies
◮ request (HttpServletRequest)
◮ response (HttpServletResponse)
◮ out (PrintWriter)
◮ session (HttpSession)
◮ application (ServletContext)
◮ page (Object)
11 / 30
Developpement Web - Servlet
Introduction
Actions standard
Variables predefinies
◮ jsp:useBean creation/importation d’un Bean
◮ jsp:setProperty initialisation d’un attribut d’un Bean
◮ jsp:getProperty afficher un attribut d’un Bean
◮ jsp:forward transfert de controle a une autre page
12 / 30
Developpement Web - Servlet
Introduction
Le concept de Java Bean
Definition
Composant reutilisable manipulable visuellement
Java Bean (simplifie)
il s’agit d’une classe qui obeit aux regles suivantes :
◮ constructeur sans arguments
◮ methodes get et set (getters, setters)
13 / 30
Developpement Web - Servlet
Introduction
Exemple de Bean
Bean
1 class Personne {2 protected String nom;3 protected String prenom;45 public Personne() {}6 public void setNom(String nom) { this.nom=nom; }7 public void setPrenom(String nom) { this.prenom=prenom; }8 public String getNom() { return this.nom; }9 public String getPrenom() { return this.prenom; }
10 }
14 / 30
Developpement Web - Servlet
Introduction
jsp:useBean
Utilisation de jsp:useBean
Il faut definir les attributs suivants :
◮ id : nom de l’instance
◮ class : type
◮ scope : portee (page, request, session, application)
15 / 30
Developpement Web - Servlet
Introduction
Exemple d’utilisation de jsp :useBean
jsp :useBean
1 <jsp:useBean id="MadMax" class="Personne" score="request" />23 <%4 out.println("Hello "+MadMax.getPrenom()+" "+MadMax.getNom());5 %>
16 / 30
Developpement Web - Servlet
Introduction
ServletContext
ServletCintext
◮ permet de communiquer avec le container de Servlets
◮ unique et accessible par tous les composants del’application web
◮ parametres definissable depuis le servlet ou depuisweb.xml
17 / 30
Developpement Web - Servlet
Introduction
ServletContext
depuis web.xml<context-param>
<param-name>webmasterEmail</param-name><param-value>[email protected]</param-value>
</context-param>
18 / 30
Developpement Web - Servlet
Introduction
ServletContext
depuis un servlet
1 ServletContext context = this.getServletContext();2 out.println(context.getInitParameter("webmasterEmail");34 Person person = (Person) context.getAttribute("sessionUser");5 if (person == null) {6 person = new Person("default", "user");7 context.setAttribute("sessionUser", person);8 }9
10
19 / 30
Developpement Web - Servlet
Le modele MVC
Le modele M(PD)-V-C(E)
Controller
ApplicationFlow
Model
BusinessLogic
Execution
FlowProcess
View
PresentationLogic Logic
Spreading
Distributed
StorageLogic
Persistence
21 / 30
Developpement Web - Servlet
Structure d’un site
Structure des repertoires d’un site
Repertoire
◮ plusieurs structures possibles !
◮ separation source Java / affichage JSP
◮ gestion des versions
◮ manuel (ant) ou automatique (Eclipse)
23 / 30
Developpement Web - Servlet
Structure d’un site
Exemple sous Eclipse
Eclipse
1 |-- WebContent2 | |-- META-INF3 | | ‘-- MANIFEST.MF4 | |-- WEB-INF5 | | |-- lib6 | | ‘-- web.xml7 | ‘-- index.jsp8 |-- build9 | ‘-- classes
10 | ‘-- com11 | ‘-- project12 | |-- controller13 | |-- model14 | |-- persistence15 | ‘-- view16 ‘-- src17 ‘-- com18 ‘-- library19 |-- controller20 |-- model21 |-- persistence22 ‘-- view23
24 / 30
Developpement Web - Servlet
Structure d’un site
Autre exemple
Sans Eclipse
1 |-- WebContent |-- dist2 | |-- META-INF | ‘-- 1.03 | | ‘-- MANIFEST.MF | ‘-- project.war4 | |-- WEB-INF ‘-- src5 | | |-- lib |-- com6 | | | |-- *.jar | ‘-- project / MVCP7 | | |-- web.xml8 | |-- *.jsp9 | |-- img
10 |-- build11 | |-- 3.012 | | |-- META-INF13 | | | ‘-- MANIFEST.MF14 | | |-- WEB-INF15 | | | |-- classes16 | | | | ‘-- com17 | | | | ‘-- project / MVCP18 | | | |-- lib19 | | | | |-- *.jar20 | | | ‘-- web.xml21 | | |-- img22 | | ‘-- *.jsp23 | ‘-- classes24 | |-- com25 | | ‘-- project / MVCP26 |-- build.xml27 |-- db28 | ‘-- project.sql 25 / 30
Developpement Web - Servlet
Mise en application
Application
Application
• construction d’un site web en Java avec utilisation de l’IDEEclipse
• gestion d’une liste de personnes
• projet Web Dynamique sous Eclipse
27 / 30
Developpement Web - Servlet
Mise en application
Application
Organisation
index.jsp add_person.jsp
lst_person.jsp mod_person.jsp
add
del_person.jsp
list
del
validate
validate
mod
28 / 30
Developpement Web - Servlet
Bibliographie
Bibliographie
• Agile Java Development with Sping, Hibernate andEclipse, Anil Hemrajani, Developer’s Library, 2006, ISBN9780672328961
• Java Power Tools, John Ferguson Smart, O’Reilly, 2008,ISBN 9780596527938
• Java Servlets and JSP, Joel Murach, Andrea Steelman,Murach, 2nd Edition, 2008, ISBN 9781890774448
30 / 30