APPLICATIONS JAVA. 3. JSP Java Server Pages. JSP - Java Server Pages Servlet. http://139.124.26.245/pi. Java Server Pages (JSP) IvMad, 2011-2013 2



Documents pareils
JavaServer Pages (JSP)

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JAVASCRIPT OMI4 TP5 SRC

Module BD et sites WEB

APPLICATIONS JAVA. 1. JDBC Java Database Connectivity. Applications Web

Programmation Web. Madalina Croitoru IUT Montpellier

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Formulaires et Compteurs

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

TD HTML AVEC CORRECTION

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Développement des Systèmes d Information

Web Tier : déploiement de servlets

Mise en œuvre des serveurs d application

Création de formulaires interactifs

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Architecture Orientée Service, JSON et API REST

Les architectures 3-tiers Partie I : les applications WEB

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Activités HTML. Code: act-html

Attaques de type. Brandon Petty

Architectures Web Services RESTful

Formulaire pour envoyer un mail

HTML/CSS - Travaux Pratiques 2

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Manuel d'installation

Application Web et J2EE

Les services usuels de l Internet

Séance d ED n 5 : HTML et JavaScript

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Architectures client/serveur

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Le développement d applications Web

Programmer en JAVA. par Tama

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Stockage du fichier dans une table mysql:

Bases de données et Interfaçage Web

DOM - Document Object Model

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

HTML, CSS, JS et CGI. Elanore Elessar Dimar

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

STID 2ème année : TP Web/PHP

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

4. SERVICES WEB REST 46

En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties.

Documentation CAS à destination des éditeurs

Compte Rendu d intégration d application

Attaques applicatives

Projet Java EE Approfondi

Aspects techniques : guide d interfaçage SSO

Guide d implémentation Interface avec la plateforme de paiement

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

WebSSO, synchronisation et contrôle des accès via LDAP

1. Installation d'un serveur d'application JBoss:

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

SUPPORT DE COURS / HTML

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Module http MMS AllMySMS.com Manuel d intégration

Bases de Données et Internet

Sécurité des applications web. Daniel Boteanu

Application web de gestion de comptes en banques

PHP 5.4 Développez un site web dynamique et interactif

Serveurs et environnements de développement. Serveur Web

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Introduction aux «Services Web»

RMI le langage Java XII-1 JMF

Application de lecture de carte SESAM-Vitale Jeebop

4. Groupement d objets

Serveur d Applications Web : WebObjects

PDO : PHP Data Object 1/13

Mysql avec EasyPhp. 1 er mars 2006

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Utilisation d objets : String et ArrayList

Techniques de Programmation pour Internet

Plateforme PAYZEN. Définition de Web-services

10. Base de données et Web. OlivierCuré

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Une introduction à Java

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Création d objet imbriqué sous PowerShell.

Formation : WEbMaster

Document Object Model (DOM)

Transcription:

APPLICATIONS JAVA JSP - Java Server Pages Servlet Java Server Pages (JSP) IvMad, 2011-2013 2 3. JSP Java Server Pages http://139.124.26.245/pi

Java Server Pages (JSP) IvMad, 2011-2013 3 JSP - Introduction JSP (Java Server Pages) et Servlet Servlet est un programme Java s'exécutant côté serveur Web comme une classe "autonome" stockés dans un fichier.class. JSP est un source Java embarqué dans une page.html. JSP est un langage de script côté serveur. Une page JSP contient : du contenu statique (texte simple, HTML, XML, JavaScript... ) du code JSP (Java) qui produit dynamiquement du contenu HTML La page JSP est "exécutable" avec tous les serveurs Web auxquels on a ajouté un "moteur" de Servlet/JSP (ex: Tomcat, Jetty) Une page JSP est compilée automatiquement en Servlet par le moteur des Servlets Java Server Pages (JSP) IvMad, 2011-2013 4 JSP - Architecture et fonctionnement

Java Server Pages (JSP) IvMad, 2011-2013 5 HTTP méthode GET Java Server Pages (JSP) IvMad, 2011-2013 6 JSP - Les phases de transformation

Java Server Pages (JSP) IvMad, 2011-2013 7 JSP - Introduction En résumé : Servlet : du code Java contenant des balises HTML JSP : une page HTML contenant du code Java Architectures des pages Web avec les JSP : les parties statiques de la page Web sont écrites en HTML les parties dynamiques de la page Web sont écrites en Java Fonctionnement de JSP : la page HTML est convertie en une Servlet La Servlet est traitée par le moteur Java intégré au serveur Web (technologie des servlets) et retourne la page HTML construite au client. La page peut contenir des scripts, tels que JavaScript ou VBScript. Java Server Pages (JSP) IvMad, 2011-2013 8 JSP - Exemple (1) <head> <title>exemple JSP</title> </head> <% out.println(" <p style='font: italic 24pt sansserif;'>bonjour tout le monde! <br />Tomcat</p> "); %> En rouge la partie instruction JSP Appel du fichier sur le port 8080 du serveur de Servlets Tomcat et le code envoyé au client <head> <title>exemple JSP</title> </head> <p style='font: italic 24pt sansserif;'>bonjour tout le monde! <br /> Tomcat</p>

Java Server Pages (JSP) IvMad, 2011-2013 9 JSP - Exemple (2) Un exemple simple qui retourne la date du serveur Web : <head> <title>obtenu par une JSP</title> </head> <h3>bonjour de la part de Tomcat</h3> <hr align="left" width="50%"> <p>la date courante est: <%= new java.util.date() %> </p> Instanciation de la classe Date en chemin complet par défaut de l'importer Appel du fichier "ladate.jsp" sur le port 8080 de Tomcat Code source dans un fichier "ladate.jsp" Java Server Pages (JSP) IvMad, 2011-2013 10 JSP - Eléments de syntaxe Les éléments suivants détiennent du code en Java <%@... %>: directives valables pour la page. N'affiche rien. Exemple : <%@ page contenttype="text/plain; charset=utf-8" %> <%@ page import="java.io.*, java.util.*" %> <%!... %>: déclaration : Permet de définir des méthodes ou des données membres <%... %>: scriptlet (tests, itération,... ) contient du code Java : insérer dans _jspservice() de la Servlet pour utiliser des objets prédéfinis : out: le canal de sortie request (HttpServletRequest): l'objet requête response (HttpServletResponse): l'objet réponse <%=... %>: récupération d une valeur d expression l'expression Java renvoie un objet String ou un type primitif. <jsp:include... /> : inclusion à l exécution <jsp:forward... /> : délégation à un autre composant

Java Server Pages (JSP) IvMad, 2011-2013 11 JSP - Exemple (3) Un exemple : <head> <title>langages objet</title> </head> <%! String[] langages = {"Java","C++","C#","Python"}; int rdm() { return (int) (Math.random() * 4); } %> <p>parmi tous les langages orientés objets :</p> <ol> <% for (int i=0; i < langages.length; i++) { out.println("<li>" + langages[i] + "</li>"); } %> </ol> <p>le prochain que j'apprends est <b><%= langages[rdm()] %></b></p> 1. Partie déclarative 2. Partie Scriptlet 3. Partie expression Java Server Pages (JSP) IvMad, 2011-2013 12 JSP - Exemple (4) Alterner le code HTML et JSP <head> <title>alterner HTML et JSP</title> </head> <!-- définit les informations globales --> <!-- à la page --> <%@page language="java" %> <!-- Déclare la variable c --> <%! char c = 0; %> <!-- Scriplet (code java) %> <% for(int i = 0; i < 26; i++){ for(int j = 0; j < 26; j++){ c = (char)(0x41 + (26 - i + j)%26); %> <!-- Expression --> <%= c %> <% } %> <br> <% } %>

Java Server Pages (JSP) IvMad, 2011-2013 13 JSP - Exemple (5) Le jour de la semaine <%@ page import="java.util.date" %> <head> <title>le jour de la semaine </title> </head> <h2>le jour de la semaine</h2> <% // Tableau des jours de la semaine String jours[] = {"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"}; // Objet de type Date Date today = new Date(); // la valeur retournée (0 = Sunday,..., 6 = Saturday) int numero_jour = today.getday(); out.println("<p>on est <i>" + jours[numero_jour] + "</i> aujourd'hui!"); %> Java Server Pages (JSP) IvMad, 2011-2013 14 JSP - Paramètres d exécution L exécution d une JSP peut être paramétrée par la directive : <%@ page buffer="none xxxkb"%> pour spécifier la taille du buffer d'envoi de la réponse. Cela facilite le travail du serveur d application et envoie la réponse plus rapidement au client. La directive : <%@ page errorpage="file_name"%> spécifie la page (JSP ou non) vers laquelle le serveur d application renvoie lorsqu une exception non gérée est lancée par la JSP. La directive : <%@ page iserrorpage="true false"%> permet de spécifier une page d erreur et autoriser ainsi la transmission de l exception pour un éventuel traitement. Cela peut servir de mécanisme pour déboguer une page JSP!

Java Server Pages (JSP) IvMad, 2011-2013 15 JSP - Paramètres d exécution Enchaîner les pages : Un page JSP peut en appeler une autre par la directive : <jsp:forward> Syntaxe : <jsp:forward page="pagederedirection" /> Exemple : <% String reputilisateur = request.getparameter("reptxtfld"); int rep = Integer.parseInt(repUtilisateur); if ((rep % 2) == 0) { %> <jsp:forward page="positif.jsp"/> <% } else { %> <jsp:forward page="negatif.jsp"/> <% } %> Java Server Pages (JSP) IvMad, 2011-2013 16 JSP - Directives <%@ page... %> Donne des informations sur la JSP (non obligatoire, valeurs par défaut) <%@ page import="..."%> (ex. <%@ page import="java.io.*"%>) les "import" nécessaires au code Java de la JSP <%@ page errorpage="..."%> fournit l'url de la JSP à charger en cas d'erreur <%@ page contenttype="..."%> le type MIME du contenu retourné par la JSP (ex. <%@ page contenttype="text/html"%>) <%@ page isthreadsafe="..." %> true ou false : la JSP peut être exécutée par plusieurs clients à la fois (valeur true par défaut) <%@ page iserrorpage="..." %> trueou false : la JSP est une page invoquée en cas d'erreur (true)

Java Server Pages (JSP) IvMad, 2011-2013 17 JSP - Objets implicites Objets pré-déclarés utilisables dans le code Java des JSPs : out : le flux de sortie pour générer le code HTML request : la requête qui a provoqué le chargement de la JSP response : la réponse à la requête de chargement de la JSP page : l'instance de servlet associée à la JSP courante (= this) exception : l'exception générée en cas d'erreur sur une page session : suivi de session pour un même client application : espace de données partagé entre toutes les JSP Java Server Pages (JSP) IvMad, 2011-2013 18 JSP - Inclusion Agrégation des résultats par plusieurs JSPs Modularité Réutilisation Directives: <jsp:include> </jsp:include> <h2>jsp le programme principale</h2> <jsp:include> page="incl.jsp" </jsp:include> <!-- sans balises --> <!-- et --> <b>jsp include file</b> <p> <%= (int)(math.random()*5); %> </p>

Java Server Pages (JSP) IvMad, 2011-2013 19 JSP - Délégation Un code JSP peut déléguer le traitement d'une requête à un autre code JSP se trouvant dans un autre fichier. Directives: <jsp:forward> </jsp:forward> <h2>jsp module principale</h2> <jsp:forward> page="forward.jsp" </jsp:forward> <h2>jsp délégué</h2> <p> <%= (int)(math.random()*5);%> </p> Java Server Pages (JSP) IvMad, 2011-2013 20 JSP - Délégation et Inclusion Récupération des paramètre via un formulaire <head> <title>jsp délégation & inclusion</title> </head> <h2>jsp délégation & inclusion</h2> <p>nom: <%= request.getparametre("nom"); %></p> <p>prénom: <%= request.getparametre("prenom"); %></p>

Java Server Pages (JSP) IvMad, 2011-2013 21 JSP - Compléments Méthodes de l'objet request String getprotocol() retourne le protocole implémenté par le serveur String getservername() retourne le nom de la machine serveur String getserverport() retourne le port de la machine serveur String getremoteaddr() retourne l'adresse de la machine cliente String getremotehost() retourne le nom de la machine cliente String getschema() retourne le protocole (http, https) utilisé par le client Java Server Pages (JSP) IvMad, 2011-2013 22 JSP - Traitement de formulaire Les pages JSP peuvent utiliser les fonctionnalités de la classe javax.servlet (puisqu'elles sont traduites en un servlet). On dispose de certains objets sous forme de variables : request de la classe javax.servlet.http.httpservletrequest out de la classe javax.servlet.servletoutputstream response de la classe javax.servlet.http.httpservletresponse Pour récupérer une variable "formulaire" on utilise : request.getparameter("paramètre"); paramètre est le nom de l'attribut qui vient des requêtes GET, POST, DELETE et PUT. request objet possèdant d'autres méthodes utiles.

Java Server Pages (JSP) IvMad, 2011-2013 23 JSP - Formulaire, un exemple simple <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>jsp Forme</title> </head> <h2>bonjour!</h2> <form name="form1" action="form1.jsp"> <label>nom </label> <input type="text" name="lenom" value="" size="25" /> <br /><br /> <label>prénom </label> <input type="text" name="leprenom" value="" size="25" /> <br /><br /> <input type="submit" value="ok" name="bouton_ok" /> <input type="reset" value="effacer" name="bouton_reset" /> </form> Java Server Pages (JSP) IvMad, 2011-2013 24 JSP - Formulaire, un exemple simple (suite) <!-- le fichier form1.jsp --> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>jsp Réponse</title> </head> <h2>bonjour!</h2> <%= request.getparameter("lenom") %> <%= request.getparameter("leprenom") %> Le code généré est envoyé au client

Java Server Pages (JSP) IvMad, 2011-2013 25 JSP - Un exemple complet <!-- Fichier Bonjour.jsp --> <%@ page contenttype="text/html; charset=iso-8859-1" %> <!DOCTYPE html> <head><title>ma première page JSP</title></head> <!-- Traitement du formulaire --> <% String prenom = request.getparameter("prenom"); %> <h2>bonjour <%=(prenom!=null && prenom.length()!=0)?prenom:"bel(le) inconnu(e)"%></h2> <% if (prenom!=null && prenom.equals("le monde")) { %> <h2>bonjour à toi</h2> <% } %> <!-- Formulaire à remplir --> <form action="bonjour.jsp" method="post"> <label>prénom : </label><input type="text" name="prenom" size="30"> <input type="submit" value="envoyer"> </form> Java Server Pages (JSP) IvMad, 2011-2013 26 JSP - Un exemple complet

Java Server Pages (JSP) IvMad, 2011-2013 27 JSP - Traitement de formulaire Exemple de formulaire (Partie HTML, fichier "formulaire.html") <head><title>formulaire</title></head> <form action="sondage.jsp" method="post"> <p>indiquez votre nom : <INPUT TYPE="text" NAME="nom" MAXLENGTH="50"> </p> <p>quelles sont vos connaissances en Java? <input type="radio" name="choice1" value="1" checked>faibles <input type="radio" name="choice1" value="2">moyennes <input type="radio" name="choice1" value="3">bonnes </p> <p>indiquez votre niveau en programmation : <input type="radio" name="choice2" value="1">médiocre <input type="radio" name="choice2" value="2" checked>moyen <input type="radio" name="choice2" value="3">bon </p> <P> <input type="submit" value="voir le résultat!"></p> </form> Java Server Pages (JSP) IvMad, 2011-2013 28 JSP - Traitement de formulaire Exemple de formulaire

Java Server Pages (JSP) IvMad, 2011-2013 29 JSP - Traitement de formulaire Exemple de formulaire (Partie JSP, fichier "sondage.jsp")) <% // récupère chaines de caractères String choice1 = request.getparameter("choice1"); String choice2 = request.getparameter("choice2"); String nom = request.getparameter("nom"); out.println(nom + ", votre input était: question a = " + choice1 + ", question b = " + choice2); // Convertir les choix en entiers int score = Integer.parseInt(choice1) + Integer.parseInt(choice2); out.println("<h3>votre score est de " + score + "</h3>"); if (score < 3) { out.print ("<p>vous êtes un débutant</p>"); } else if (score < 5) { out.print ("<p>vous avez un niveau moyen</p>"); } else { out.print ("<p>vous êtes un expert!</p>"); } %> Java Server Pages (JSP) IvMad, 2011-2013 30 JSP - Traitement de formulaire Exemple de formulaire

Java Server Pages (JSP) IvMad, 2011-2013 31 JSP - Traitement de formulaire (2) <form method="post" action="etudes.jsp"> <p>etudiant IUT-R&T</p> <p><label>nom: </label><input type="text" name="nom"></p> <p><label>prénom: </label><input type="text" name="prenom"></p> <p><label>age: </label><input type="text" name="age"></p> <p>année d'études:<br /> <label>première: </label><input type="radio" name="annee" value="1"> <label>deuxième: </label><input type="radio" name="annee" value="2"> <label>licence: </label><input type="radio" name="annee" value="3"> </p><p><label>matière: </label> <select name="matiere"> <option value="math">math</option> <option value="info">info</option> <option value="wlan">wlan</option> <option value="comm">comm</option> <option value="tcom">telec</option> </select> </p> <p><label>moyenne: </label><input type="text" name="moyenne" value="0.0"></p> <p><label>soumettre: </label><input type="submit" value="envoyer"></p> </form> Java Server Pages (JSP) IvMad, 2011-2013 32 JSP - Traitement de formulaire (2)

Java Server Pages (JSP) IvMad, 2011-2013 33 JSP - Traitement de formulaire (2) <!DOCTYPE html> <html lang="fr"><head> <meta charset="utf-8" /> <title>etudiant</title></head> <% String nom = request.getparameter("nom"); String prenom = request.getparameter("prenom"); int age = Integer.parseInt(request.getParameter("age")); int an = Integer.parseInt(request.getParameter("annee")); String[] matieres = request.getparametervalues("matiere"); double mn = Double.parseDouble(request.getParameter("moyenne")); out.println("<br />Nom: "+nom); out.println("<br />Prénom: "+prenom); out.println("<br />Age: "+age); out.println("<br />Année: "+an); for(int i = 0; i < matieres.length; i++){ out.println(matieres[i] + "<BR>"); } out.println("<br />Moyenne: "+mn); %>