22
 Introduction à JSP (Java Server Pages 1.x) java-jsp  Internet et Education © TECF A 6/12/00 Introduction à JSP (Java Server Pages 1.x)  Code: java-j sp Originaux url: http://tecfa.unige.ch/guides/tie/html/ java-JSP/java- jsp.html url: http://tecfa.unige.ch/guides/tie/pdf/files /java-jsp.pdf Auteurs et version Daniel K. Schneider - Vivian Synteta Versi on: 0.1 (modif ié le 12/6/00 par VS) Prérequis Java de base  Module technique précédent:  java-intro Avoir une idée du st andard "CGI"  Module technique précédent: cgi-intro

java-jsp

Embed Size (px)

Citation preview

  • Introduction JSP (Java Server Pages 1.x) java-jsp

    Internet et Education CFA 6/12/00

    Originauxurl: http://tecfurl: http://tecf

    Auteurs et ve Daniel K. Sch Version: 0.1 (

    Prrequis Java de base

    Module techni Avoir une id

    Module techni TE

    Introduction JSP(Java Server Pages 1.x)

    Code: java-jsp

    a.unige.ch/guides/tie/html/java-JSP/java-jsp.html

    a.unige.ch/guides/tie/pdf/files/java-jsp.pdf

    rsionneider - Vivian Syntetamodifi le 12/6/00 par VS)

    que prcdent: java-introe du standard "CGI"que prcdent: cgi-intro

  • Introduction JSP (Java Server Pages 1.x) - . java-jsp-2

    Internet et Education CFA 6/12/00

    Pages activesModule techni

    Autres moduModule techni )Module techni

    Documentatiurl: http://ja imprimez uurl: Doc localurl: http://ja

    Objectifs Faire des sim ( faire: utilis

    Remerciemen Yan Bodain, eter) TE

    avec PHP (ou quivalent), conseill mais pas obligatoire.que prcdent: php-html

    lesque suppl.: java-jhtml (anciens Java Server Pages 0.9, dconseillque suivant: java-servl

    onva.sun.com/products/jsp/syntax.html (Sun JSP Syntax cards)ne carte pour accompagner ces slidese: http://tecfa.unige.ch/guides/jsp/pointers.htmlva.sun.com/products/jsp/

    ples pages actives avec JSPation de "Beans")

    ts:CRIM Formation (correction dune erreur sur request.getParam

  • Introduction JSP (Java Server Pages 1.x) - 1. Table des matires dtaille java-jsp-3

    Internet et Education CFA 6/12/00

    1. Table des1. Table des m 32. Introduction 4

    2.1 Ecrire des p 52.2 Faire une so 62.3 Gestion des 7

    3. Utilisation d 84. Traitement d 9

    4.1 Principe de b 94.2 Traitement s 114.3 Debugging d 144.4 Vrification 15

    5. Session trac 186. JSP inside 19 TE

    matires dtailleatires dtaille JSP (Page Compilation)ages JSP simplesupe HTML/Java plus mlangeerreursautres classes JAVAe formulairesase du traitement de requtesimple de formulairese paramtresde linput et HTML conditionnelking

  • Introduction JSP (Java Server Pages 1.x) - 2. Introduction JSP (Java Server Pages) java-jsp-4

    Internet et Education CFA 6/12/00

    2. Introduct

    Principe de base Permet dcr XML tags et Compile et e La traduction

    le rsultat ( e Aprs chaq

    Utilit: Cration de p Analyse de fo possibilit d accs toute TE

    ion JSP (Java Server Pages)

    :ire des pages hybrides HTML/Java (comme PHP)scripts en Java:xcute la source comme "servlet" se fait automatiquement pour tous les fichiers *.jsp

    servlet source et classe) est place dans un rpertoire du systmue update dun fichier *.jsp la classe servlet est recompile

    ages "design"rmulaires

    interfaage avec des "vrais" servlets classe Java mise disposition (notamment des "beans")

  • Introduction JSP (Java Server Pages 1.x) - 2. Introduction JSP (Java Server Pages) java-jsp-5

    Internet et Education CFA 6/12/00

    2.1 Ecrire de pas besoin d Le code Java

    voir exemp

    Exemple 2-1: JSP

    url: Programmurl: Source: h

    JSP

    out est un ob Curieux: voir TE

    s pages JSP simplesimporter les classes (cest fait par le serveur!) est dlimit dans une page HTML par des tags spciaux

    le 2-2 JSP simple (2) [6]

    simple (1)

    e: http://tecfa.unige.ch/guides/jsp/ex/demo1.jspttp://tecfa.unige.ch/guides/jsp/ex/demo1.jsp.text

    Test

    nt i = 0; i < 5; i++) out.println ("" + i);

    jet "gratuitement" mis votre disposition pour les "sorties" -6. JSP inside [19] pour le Java que cette page gnre

  • Introduction JSP (Java Server Pages 1.x) - 2. Introduction JSP (Java Server Pages) java-jsp-6

    Internet et Education CFA 6/12/00

    2.2 Faire une

    Exemple 2-2: JSP

    url: Programmurl: Source: h

    Dans les section (\")int emphasifor (int i out.print if (i == out.print if (i == }

    On peut mlang utiliser le ta

  • Introduction JSP (Java Server Pages 1.x) - 2. Introduction JSP (Java Server Pages) java-jsp-7

    Internet et Education CFA 6/12/00

    2.3 Gestion durl: http://te )url: http://teurl: http://te

    On peut arra Rien faire p

    Page error.jsp

  • Introduction JSP (Java Server Pages 1.x) - 3. Utilisation dautres classes JAVA java-jsp-8

    Internet et Education CFA 6/12/00

    3. Utilisatio Vous pouvez

    Today

    number to a name[] = { "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" };s date new Date ();= today.getDay ();("On est " + days [weekday] + " aujourdhui!");

    l>

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-9

    Internet et Education CFA 6/12/00

    4. Traitemen

    4.1 Principe Les pages JSP

    (puisquelles On a gratuit ex.

    1. request d

    2. out de la

    3. response Pour rcupr request.g paramtre PUT. request po

    On peut lir

    Voir la servlet durl: http://te TE

    t de formulaires

    de base du traitement de requtes peuvent utiliser les fonctionalits de la classe javax.servlet

    sont traduites en un servlet).ement disposition certains objets sous forme de variables, par

    e la classe javax.servlet.http.HttpServletRequest

    classe javax.servlet.ServletOutputStream

    de la classe javax.servlet.http.HttpServletResponseer une variable "formulaire" utiliser:etParameter("paramtre") est le nom du paramtre qui vient des GET, POST, DELETE et ssde dautres mthodes utiles, par exemple getHeader.

    e un cookie avec request.getHeader("cookie")

    oc, par exemple:cfa2.unige.ch/guides/java/jsdk2/doc/

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-10

    Internet et Education CFA 6/12/00

    Exemple 4-1: Sim

    url: Programmurl: Avec para ellourl: Source: h

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-11

    Internet et Education CFA 6/12/00

    4.2 Traiteme

    Exemple 4-2: Sim

    url: http://tecfurl: source jsp

    Formulaire HTM

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-12

    Internet et Education CFA 6/12/00

    JAVA:

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-13

    Internet et Education CFA 6/12/00

    Explications la mthode r

    sous forme la mthode I

    ncessaire p

    Problmes avec Lorsque lon

    url: http://tecf car elle essa voir 4.4 V

    Pour les trichhttp://tecfa.u TE

    equest.getParameter retourne la valeur dune variable de string, il faut donc dclarer choice comme Stringnteger.parseInt("string") traduit un string en entierour faire une addition dans lexemple ci-dessus.

    cette page appelle directement la page *.jsp elle sautea.unige.ch/guides/jsp/ex/simple-calcul/calcul.jspye dadditionner des variables qui nexistent pas

    rification de linput et HTML conditionnel [15]eurs, un emploi "GET" de la page:

    nige.ch/guides/jsp/ex/simple-calcul/calcul.jsp?choice=10&choice2=15

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-14

    Internet et Education CFA 6/12/00

    4.3 Debuggi Alternative: u

    TE

    ng de paramtrestiliser "GET" comme methode dans le formulaire HTMLn="calcul.jsp" method="get">ter paramtres et valeurs reus

    a.unige.ch/guides/jsp/ex/simple-calcul/formulaire2.html

    : /simple-calcul/calcul2.jsp.textort="java.util.*" %>

    pNameList; // contient une liste des params transmises; // contient un de ces noms []; // contient larray des valeurs pour chaque param // 1 valeur"Method used was: " + request.getMethod());"Liste de paramtres et valeurs (pas forcment dans lord

    st = request.getParameterNames();pNameList.hasMoreElement(String) pNameList.nextElement();tln("name=" + pName + ": ");request.getParameterValues(pName);s != null) {t i=0; i

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-15

    Internet et Education CFA 6/12/00

    4.4 Vrificat

    Voir si un param

    1. Champs tex on regarde un input ty// inputString nomS.....

    if ( nomSt Voici une aif ( nomStr

    2. Widgets de on regarde si "choix" nString Choi....

    if (Choix =

    HTML conditio On peut affic Attention: si TE

    ion de linput et HTML conditionnel

    tre est vide:

    te sils sont vides (string de taille zro)pe "text" (HTML) est donc toujours pass au serveur !!

    tring = req.getParameter("nom");

    ring.equals("") ) { ... geuler ...}utre mthode sans utiliser emptyString (JDK < 1.2 ?)ing.compareTo("") == 0) type "radio" etc. si lobjet est prsent ou absent (le formulaire ne transmet rien)a pas t transmis, getParameter retourne null !x = req.getParameter("choix");

    = null) { .... geuler .... }

    nnelher conditionellement du HTMLproblmes, utilise out.print(" ...") la place

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-16

    Internet et Education CFA 6/12/00

    Exemple 4-4: Un

    url: http://tecfurl: source jspif (request out.prin return;}// Parameterchoice = rechoice2 = renom = reques

    if (nom.equa %>Sorry on P

    == null) || (choice2 == null)) {la touche BACK pour complter .... vous avez oubli qcl>

    }

  • Introduction JSP (Java Server Pages 1.x) - 4. Traitement de formulaires java-jsp-17

    Internet et Education CFA 6/12/00

    Exemple 4-5: Sim

    url: http://tecfurl: http://tecf L exemple

    En rgle gn aire etune autre po

    if ((proces ... montrif (process ... affic} else { ... dire}if (process%> ... affic

    lter des "get" directs sur la page, on peut aussi tester la mthodeng de paramtres [14]

  • Introduction JSP (Java Server Pages 1.x) - 5. Session tracking java-jsp-18

    Internet et Education CFA 6/12/00

    5. Session tr

    Exemple 5-1: Ses

    url: http://tecfurl: http://tecf

    sion tracking II

    a.unige.ch/guides/jsp/ex/session/session-track2.jspa.unige.ch/guides/jsp/ex/session/session-track2.jsp.texttout cela .... suivre !

  • Introduction JSP (Java Server Pages 1.x) - 6. JSP inside java-jsp-19

    Internet et Education CFA 6/12/00

    6. JSP insid Section opt

    Il nest pas nc arcontre il est ut esmessages derr

    Mcanisme Le server Jav

    dans le rper 080/ Pour chaque _0002fgui p_0.java

    il sagit du Une seule m

    elle incorpo elle "copie"

    writeBytes) Les classes *. que le

    code source * TE

    eion ( ce stade)essaire de comprende le code java produit pour utiliser les pages JSP. Pile de savoir lire une telle page approximativement pour comprendre deur

    a met les fichiers *.java et *.class gnrstoire tecfa:/usr/local/jakarta/tomcat/work/localhost_8 page JSP, un "servlet" est cr, par exemple:des_0002fjsp_0002fex_0002fdemo_00031_0002ejspdemo1_js

    ne sous-classe de HttpServletthode "service" est crere les instructions java dans la page JSP

    plus ou moins "tel quel" les commandes html (voir mthode

    webserver.pagecompile assurent la mise jour de la classe ds.jsp change.

  • Introduction JSP (Java Server Pages 1.x) - 6. JSP inside java-jsp-20

    Internet et Education CFA 6/12/00

    Scurit Les servlets g

    pas daccs (Sauf si je m

    Exemple 6-1: Javimport java.io.IOEimport javax.servlimport javax.servlimport javax.servl

    public class jsp__

    public final lo return 94889 } private static }; public final St return _gnuj } public final lo return 19991 } public void _js

    throws Serv { response.se JspFactory PageContext TE

    nrs par JSP sont "sandboxed": aux fichiers et autres ressources localese trompe) il faut soit crire des vrais servlets pour cela.

    a gnr pour lexemple 2-1 JSP simple (1) [5]xception;et.*;et.http.*;et.jsp.*;

    guides__jsp__ex__demo1_2ejsp extends org.gjt.jsp.HttpJspPageImpl{

    ng _gnujspGetTimestamp() {7919123L;

    final String[] _gnujspDeps = new String[] { "/guides/jsp/ex/demo1.jsp"ring[] _gnujspGetDeps() {spDeps;

    ng _gnujspGetCompilerVersion() {01701L;

    pService (HttpServletRequest request, HttpServletResponse response)letException, IOException

    tContentType ("text/html"); factory = JspFactory.getDefaultFactory (); pageContext = factory.getPageContext (this,request,response,

  • Introduction JSP (Java Server Pages 1.x) - 6. JSP inside java-jsp-21

    Internet et Education CFA 6/12/00

    HttpSession ServletCont JspWriter ServletConf Object

    try {

    // line:/guides/jsout.print ("\n \n \n// line:/guides/js

    for (int i =

    // line:/guides/jsout.print ("\n

  • Introduction JSP (Java Server Pages 1.x) - 6. JSP inside java-jsp-22

    Internet et Education CFA 6/12/00 TE

    Introduction JSP (Java Server Pages 1.x)1. Table des matires dtaille2. Introduction JSP (Java Server Pages)2.1 Ecrire des pages JSP simples2.2 Faire une soupe HTML/Java plus mlange2.3 Gestion des erreurs

    3. Utilisation dautres classes JAVA4. Traitement de formulaires4.1 Principe de base du traitement de requtes4.2 Traitement simple de formulaires4.3 Debugging de paramtres4.4 Vrification de linput et HTML conditionnel

    5. Session tracking6. JSP inside