30
eveloppement Web - Servlet eveloppement Web - Servlet Jean-Michel Richer [email protected] http://www.info.univ-angers.fr/pub/richer M1/M2 Informatique - 2010-2011 1 / 30

Developpement Web - Servlet´richer/ens/m2cdsii/crs_jsp.pdf · Les Java Server Pages ... traduites en Servlet par le Serveur Tomcat (code compile, non interpr´ et´ e) ... un site

  • 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

Introduction

Introduction

3 / 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 MVC

Le modele MVC

20 / 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 d’un site

Structure d’un site

22 / 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

26 / 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

Bibliographie

29 / 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