La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 CGI, Servlet

2 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

3 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)

4 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

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

6 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

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

8 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()); } }

9 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

10 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

11 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

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

13 Exemple 2/3 public class GreetingServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String email = request.getParameter("email"); 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 email (" + email +") with us. "); out.println(" "); out.close(); }

14 Exemple 3/3 // fichier de déploiement <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> Registration GreetingServlet

15 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

16 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

17 Caddie 1/3 Caddie electronique Servlet catalogue Servlet shoppingcart

18 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(); }

19 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(); }

20 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

21 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);

22 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

23 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); }


Télécharger ppt "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."

Présentations similaires


Annonces Google