CGI, Servlet. Script CGI, Servlet Motivation Exécution dun traitement coté serveur web Traitement de formulaire Génération de pages html à la volée Ex.

Slides:



Advertisements
Présentations similaires
Serveur d’applications JEE
Advertisements

DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
Architecture. Architecture Enjeux Les Enjeux Trouver une solution e-Business Accessible à partir d’un navigateur Web Accédant au système via un Portail.
Servlet JSP & © Philippe Poulard.
Programmation Web Les JSP.
Plan du cours 5:Threads introduction Définition Création des Threads
Cours 5.3 : XML et les architectures N-tiers – Tier Présentation
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,

UV JSP JSP : Java Server Page
UV Servlets Les Servlets
JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
Servlets 2 et 3.0, annotations et descripteurs dans Java EE 6
JSP 2 Crash Course Michel Buffa UNSA
Connexion base de données
Common Gateway Interface
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Université de Versailles-Saint-Quentin
Connexion Web et Bases de Données : Les SERVLETS
Applications Internet
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
SERVLETS PRESENTATION
Développement Web en J2EE (Servlet & JSP)
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
Quelques notes sur CORBA F. Boyer, Oct Principes Programmation distribuée Multi-plateformes Notion de client et de serveur Notion de stub et de.
1 Développement des Applications des Bases de Données Chapitre 6, Sections
Programmation par Objets et Java
Section 3: Le Web, le http et le HTML1 La programmation du Web Du côté client Code léger qui sexécute sur lordinateur client Javascript, Applets, Flash,
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Applications Internet Chapitre 7, Sections
IFT1025: Programmation 2 Internet Jian-Yun Nie. Concepts Communication sur lInternet Connexion dans Java.
Multi-Thread Jian-Yun Nie
JSTL JSP Standard Tag Library
Servlets.
JSP (Java Server Pages)
Servlets. 2 H. Fauconnier M2-Internet Contenu dynamique Perl/cgi indépendant de la plateforme Extensions du serveur exemple ASP M2-Internet 3 H. Fauconnier.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Java, les objets : tout de suite ! Rassembler, grouper les objets
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes Usage.
Michel Coletta - Journées PATTERNS Avril Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
Utilisation avancée.
Marc Le BihanStruts 1.x1 Marc Le Bihan. Struts 1.x2 Plan I)Développement web par Servlets et JSP. II)Prise en charge de Struts. III)Principe de fonctionnement.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 11 Services Web et plateforme J2EE.
Les servlets Java Les bases de la génération dynamique HTML en Java Sébastien Limet etGérard Rozsavolgyi Licence Professionnelle
Chapitre 2 Développement Web avec les technologies JSP/Servlets
UV J2EE Module Java Expert
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
Les sockets.
Schéma de conception Factory Method Exemple Sylvain Giroux.
1 / / 01 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB ARCHITECTURE WEB – COURS III
M2 – MIAGE/SID Servlet et session M2 – MIAGE/SID
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Serveurs Web à contenu dynamique Emmanuel Cecchet INRIA Rhône-Alpes, Projet Sardes Rice University, Systems lab
Java - Servlet et JSP Servlets JSP (Java Server Pages) Tomcat
Les Java Server Pages Dans ce chapitre, nous allons :
IFT 6800 Atelier en Technologies d’information Chapitre 5 Introduction aux Servelets & JSP.
JAVA EE 5 Q.R. C’est quoi une servlets?
Technologie servlet Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

CGI, Servlet

Script CGI, Servlet Motivation Exécution dun traitement coté serveur web Traitement de formulaire Génération de pages html à la volée Ex Client Web Serveur Web Get/post CGI/ Servlet Catalogue.html Bd catalogue

Les script CGI Exécutable du coté du serveur Nouveau processus Invoqué par les méthodes Get/Post Paramètres de la requêtes Variable denvironnement et STDIN Le serveur configure ces variable avant de lancer le script Contenu dun formulaire : paires nom-valeur Dans QUERY_STRING (GET) Dans STDIN (POST)

Encodage des paramètres Chaque paramètres est codée sous la forme nomparam = valeur Chaque pair est séparé par un & Nom=dupont+Jean&adresse=3+rue+de+la+Paix

Exemple (GET) JdcSurvey <form action="cgi-bin/showcgiget" method=GET> How Many Employees in your Company? more General Comments? What IDEs do you use? JavaWorkShop J++ Cafe'

Exemple (GET) public class getecho { public static void main(String[] args) throws Exception{ StringTokenizer st = new StringTokenizer(args[0],"\t\n\r\f&"); System.out.println("Query Results"); System.out.println("You submitted the following name/value pairs:"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } } #!/bin/sh echo "Content-Type: text/html" echo "" java getecho $QUERY_STRING echo "" Script cgi Redirection vers une classe java

Exemple (POST) JdcSurvey <form action="cgi-bin/showcgipost" method=POST> How Many Employees in your Company? more General Comments? What IDEs do you use? JavaWorkShop J++ Cafe'

Exemple (POST) #!/bin/sh echo "Content-Type: text/html" echo "" java postecho echo "" Script cgi Redirection vers une classe java public class postecho { public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(in.readLine(),"\t\n\r\f&"); System.out.println("Query Results"); System.out.println("You submitted the following name/value pairs:"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } }

Les servlet Script serveur écrit en java Sexécute dans le même processus Performance sur le passage de paramètre Serveur HTTP Serveur JAVA : Java Web Server Serveur Plug-in servlet : Apache TomCat

Servlet HTTP - API public void init() protected void doDelete(HttpServletRequest req, HttpServletResponse resp)doDeleteHttpServletRequestHttpServletResponse protected void doGet(HttpServletRequest req, HttpServletResponse resp)doGetHttpServletRequestHttpServletResponse protected void doOptions(HttpServletRequest req, HttpServletResponse resp)doOptionsHttpServletRequestHttpServletResponse protected voiddoPost(HttpServletRequest req, HttpServletResponse resp)doPostHttpServletRequestHttpServletResponse protected void doPut(HttpServletRequest req, HttpServletResponse resp)doPutHttpServletRequestHttpServletResponse protected void doTrace(HttpServletRequest req, HttpServletResponse resp)doTraceHttpServletRequestHttpServletResponse protected void service(HttpServletRequest req, HttpServletResponse resp)serviceHttpServletRequestHttpServletResponse Void service(ServletRequest req, ServletResponse res)serviceServletRequestServletResponse

Cycle de vie instanciation Initialisation/ Disponible pour requêtes Requête création init Début requête Fin requête Erreur destruction Fermeture du conteneur Erreur Fermeture du conteneur

Exemple 1/3 ProJava Registration Welcome Your Name Your (source : j2ee programming, wrox press)

Exemple 2/3 public class GreetingServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String = request.getParameter(" "); response.setContentType("text/html"); // Set MIME type for the response PrintWriter out = response.getWriter(); out.println(" "); out.println(" " + name + " "); out.println(" Thanks for registering your (" + +") with us. "); out.println(" "); out.close(); }

Exemple 3/3 // fichier de déploiement <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " Registration GreetingServlet

Session Notion de session Une requête dépend du résultat des requêtes précédentes Ex : caddie Création de session HttpSession getSession()HttpSessiongetSession HttpSession getSession(boolean create)HttpSessiongetSession

HttpSession java.lang.Object getAttribute(java.lang.String name)getAttribute java.util.Enumeration getAttributeNames()getAttributeNames Long getCreationTime()getCreationTime java.lang.String getId()getId int getMaxInactiveInterval() getMaxInactiveInterval void invalidate()invalidate Boolean isNew()isNew void removeAttribute(java.lang.String name)removeAttribute void setAttribute(java.lang.String)setAttribute(java.lang.String) voidsetMaxInactiveInterval(int interval)setMaxInactiveInterval

Caddie 1/3 Caddie electronique Servlet catalogue Servlet shoppingcart

caddie public class Catalog extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(); int itemCount = 0; ArrayList cart = (ArrayList) session.getAttribute("cart"); if (cart != null) itemCount = cart.size(); res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println(" Simple Shopping Cart "+ "Example "); out.println(" "); out.println(" Book Store "); out.println(" You've " + itemCount + " items in your cart. "); out.print("<FORM ACTION=\""); out.println(res.encodeURL("/cart/servlet/cart")); out.println("\" METHOD=\"POST\">"); out.println(" "); out.println(" Item 1: " + " Begining Java2 - JDK 1.3 Version ");.. out.println(" "); out.close(); }

caddie public class ShoppingCart extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String[] itemsSelected; String itemName; HttpSession session = req.getSession(true); ArrayList cart = (ArrayList) session.getAttribute("cart"); if (cart == null) { cart = new ArrayList(); session.setAttribute("cart", cart); } PrintWriter out = res.getWriter(); res.setContentType("text/html"); itemsSelected = req.getParameterValues("item"); if (itemsSelected != null) for (int i = 0; i < itemsSelected.length; i++) { itemName = itemsSelected[i]; cart.add(itemName); } out.println(" "); out.println("Shopping Cart Contents"); out.println(" "); out.println(" Items currently in your cart "); out.println(" "); Iterator iterator = cart.iterator(); while (iterator.hasNext()) { out.println(" " + iterator.next() + " "); } out.print(" <A HREF=\""); out.print(res.encodeURL("/cart/servlet/catalog")); out.println("\">Back to the shop "); out.close(); }

Cookies Données textuelles envoyées par le serveur au client Stockées chez le client Renvoyées vers le serveur lors de toutes requêtes vers le serveur

Cookies API : CookieCookie(java.lang.String name, java.lang.String value) Void setValue(java.lang.String newValue)setValue Void setMaxAge(int expiry)setMaxAge Void setDomain(java.lang.String pattern)setDomain java.lang.String getValue()getValue java.lang.String getDomain()getDomain Int getMaxAge()getMaxAge … Ex : Cookie c =new cookie("uid", "joe"); c.setMaxAge(-1); c.setDomain(".toto.com "); Response.addCookie(c);

JSP-Java Server Page Simplifier la couche de présentation dynamique Script html + java Compiler sous la forme dune servlet client Page jsp 1ere requête servlet réponse Génération

JSP-Java Server Page The current time is Public class simpleJSP extends HttpJspBase { … public void jspservice(HttpServletRequest request, HttpServletResponse response) { out = pagecontext.getOut(); out.write(\r\n \r\n \r\n The current time is + new Date()); our.write(\r\n \r\n \r\n\ r\n); }