Merge branch 'master' of ssh://git.nguyen.vg/hacks/simpleWebSlides
[hacks/simpleWebSlides.git] / xpi / xpi_08.xhtml
diff --git a/xpi/xpi_08.xhtml b/xpi/xpi_08.xhtml
deleted file mode 100644 (file)
index 6c4e24c..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
->
-<html xmlns="http://www.w3.org/1999/xhtml" >
-  <head>
-    <title>JSP</title>
-
-    <meta http-equiv="Content-Type"
-          content="text/html; charset=utf-8" />
-    <meta name="copyright"
-          content="Copyright &#169; 2013 Kim Nguyễn" />
-
-    <!-- Load jQuery -->
-    <script src="../jquery-1.9.1.min.js" type="text/javascript" ></script>
-    <!-- Load the library -->
-    <script src="../simpleWebSlides.js" type="text/javascript" ></script>
-
-    <link rel="stylesheet" href="../simpleWebSlides.css" type="text/css"  media="all" />
-    <!-- Load a custom Theme, the class-element marks this style-sheet
-      a "theme" that can be swtiched dynamicaly -->
-    <link class="sws-theme" rel="stylesheet"  title="U-Psud style"  href="../themes/uPsud.css" type="text/css" />
-
-    <!-- Customize some templates and initialize -->
-    <style type="text/css">
-      .xml-tag { color: #00486c; }
-    </style>
-    <script type="text/javascript">
-      <![CDATA[
-      SWS.Config['sws-slide-change'] = SWS.Effects.slideChangeFadeOutIn;
-      SWS.Config['sws-object-deactivate'] =  SWS.Effects.objectDeactivateFadeOut;
-      SWS.Config['sws-object-activate'] = SWS.Effects.objectActivateFadeIn;
-
-      //Ensures that we load SWS at the very end, after MathJax has
-      //been initialized
-
-      $(window).load(function () {
-       $(".inline-xml").each(function(i, elem)
-      {
-      var jelem = $(elem);
-      var code = jelem.html();
-      code = code.replace ("<![CDATA" + "[", "").replace ("]" + "]>", "");
-      code = code.replace (/>/g, ">>>");
-      code = code.replace (/</g, "<span class='xml-tag'>&lt;");
-      code = code.replace (/>>>/g,"&gt;</span>");
-
-      jelem.html(code);
-      });
-  });
-
-      var checkSVG = function (o, i)
-      {
-            if (i >= 10 || SWS.Utils.isUndefined(o) || o == null) return;
-            var svg = o.getSVGDocument();
-            if (svg == null) {
-              setTimeout(function() { checkSVG(o, i+1); }, 200);
-            } else {
-         var alltext = $(svg).find("text");
-         alltext.css("font-family", "DIN");
-         alltext.css("font-size", "70%");
-
-            };
-      };
-      $(window).load(function() {
-      $("embed").ready(function() {
-         setTimeout(function() {
-         $("embed").each(function(i, o) { checkSVG(this,0);   });
-}, 1000);
-        });
-     });
-      $(window).load(SWS.Presentation.init);
-
-       ]]>
-
-    </script>
-
-  </head>
-  <body>
-    <a href="xpi_07.xhtml" class="sws-previous"/>
-    <div class="sws-slide sws-cover sws-option-nofooter">
-      <h1>XML et Programmation Internet</h1>
-      <h1>Cours 8</h1>
-      <a href="mailto:kn@lri.fr">kn@lri.fr</a>
-    </div>
-    <h1>Principe</h1>
-    <div class="sws-slide">
-      <h1>Programmation Web coté serveur</h1>
-      <p>(rappel) génération de pages-web dynamiques (<i>i.e.</i> dont
-      le contenu est calculé en fonction de la requête
-      HTTP). Plusieurs choix de langage côté serveur.
-      </p>
-      <ul>
-       <li>PHP (déploiement de site très simple,
-         langage <span style="text-decoration:line-through">merdique</span>
-         particulier)
-       </li>
-       <li>Python, Ruby (manque de standardisation, plusieurs
-       framework concurrents, problèmes de performances)</li>
-       <li>ASP .NET (microsoft) </li>
-       <li><a>Java/JSP</a> (langage raisonnable, déploiement complexe)</li>
-      </ul>
-
-  </div>
-    <div class="sws-slide">
-      <h1>JSP</h1>
-      <p>JSP (Java Server Pages) est un <i>framework</i> permettant de
-       créer des pages Web dynamiques en Java. Il fait partie de la
-       suite Java EE (Entreprise Edition). Rappel :
-      </p>
-      <ul>
-       <li>Java Card (Java pour cartes de crédit, très peu de choses,
-       pas de GC)</li>
-       <li>Java ME (Micro Edition, pour les périphériques embarqués,
-       mobiles, etc.)</li>
-       <li>Java SE (Standard Edition, java « normal »)</li>
-       <li>Java EE (Entreprise Edition, SE + packages pour JSP, et autres)</li>
-      </ul>
-    </div>
-    <div class="sws-slide">
-      <h1>Architecture</h1>
-      <p>Nécessite un serveur Web particulier. Le standard est Apache Tomcat.</p>
-      <ul>
-       <li>Le programmeur écrit des fichiers <tt>.jsp</tt>, contenant
-         du HTML + du java dans des balises spéciales</li>
-       <li>(Le programmeur déploie les fichiers sur le serveur
-         Tomcat)</li>
-       <li>L'utilisateur navigue vers une page <tt>foo.jsp</tt></li>
-       <li>Le serveur Tomcat génère <tt>fooServlet.class</tt></li>
-       <li>La classe est chargée dans la JVM java et (sa métode
-         principale) est exécutée, produisant une page HTML</li>
-       <li>La page HTML est envoyée au navigateur</li>
-      </ul>
-    </div>
-    <div class="sws-slide">
-      <h1>Exemple</h1>
-      <code class="background:white;">
- <![CDATA[<%@ page contentType="text/html; charset=UTF-8" %>
-
- <!DOCTYPE html>
- <html>
- <head><title>test JSP</title>
-       <meta charset="UTF-8"/>
- </head>
- <body>
- Page created on
- <%]]>
-       java.util.Date d = new java.util.Date();
-       <s>out</s>.println(d.toString());
- <![CDATA[%>
- </body>
- </html>]]></code>
-    </div>
-<div class="sws-slide">
-<h1>balises spéciales JSP</h1>
-<p>JSP introduit 4 balises spéciales qui sont interprétée par le
-  serveur Tomcat.
-</p>
-<ul>
-  <li>Balise de configuration : <tt>&lt;%@ … %&gt;</tt> (options HTML,
-  import de packages, …)</li>
-  <li>Balise de déclarations : <tt>&lt;%! … %&gt;</tt> (déclarer des
-  attributs et des méthodes)</li>
-  <li>Balises d'instructions : <tt>&lt;% … %&gt;</tt> (permet de mettre
-  une suite d'instructions)</li>
-  <li>Balises d'expressions : <tt>&lt;%= … %&gt;</tt> (permet de mettre
-  une expression dont le résultat est converti en <tt>String</tt>)</li>
-</ul>
-</div>
-    <div class="sws-slide">
-      <h1>Exemple complet</h1>
-      <code style="background:white;">  <![CDATA[<%@ page contentType="text/html; charset=UTF-8" %>
-  <%@ page import="java.util.Date" %>
-  <!DOCTYPE html>
-  <html>
-  <head><title>test JSP</title>
-        <meta charset="UTF-8"/>
-  </head>
-  <%!
-         Date maDate;
-
-         Date maMethode() {
-             return new Date();
-         }
-  %>
-   <body>
-  <%
-     maDate = maMethode();
-  %>
-   Page created on <%= maDate %>
-  </body>
-  </html>]]></code>
-    </div>
-<div class="sws-slide">
-  <h1>Objets par défaut</h1>
-<p>Le code placé dans les balises spéciales a accès à certains objets
-  automatiquement déclarés. Parmi les principaux :
-</p>
-<ul>
-  <li><tt>out</tt> de type <tt>JspWrite</tt>
-  (comme <tt>System.out</tt> mais écrit dans la page Web générée
-  </li>
-  <li><tt>session</tt> de type <tt>HttpSession</tt> : permet de
-  définir et récupérer des variables de sessions (i.e. Objets que l'on
-  stocke « globalement » et que l'on peut récupérer d'une page à
-  l'autre)</li>
-  <li><tt>request</tt> de type <tt>HttpServletRequest</tt> : permet
-  de récupérer les paramètres passés dans une requête HTTP (par
-  exemple les valeurs d'un formulaire)</li>
-  <li><tt>response</tt> de type <tt>HttpServletResponse</tt> : permet
-    de spécialiser la réponse envoyée au client (en-têtes HTTP,
-    cookies, …)</li>
-</ul>
-</div>
-
-<div class="sws-slide">
-  <h1>Classe JspWriter</h1>
-  <p>Fonctionne comme <tt>System.out</tt> (on peut donc
-    appeler <tt>.print/.println</tt>) mais correspond a un endroit
-    particulier de la page HTML</p>
-</div>
-
-<div class="sws-slide">
-<h1>Classe HttpSession</h1>
-<p>Propose plusieurs méthodes : </p>
-<code style="background:white">  //Renvoie la valeur stockée sous le nom name
-  Object <u>getAttribute</u>(String name)
-
-  //Stocke l'objet value sous le nom name
-  void <u>setAttribute</u>(String name, Object value)
-
-  //Supprime l'association name value
-  void <u>removeAttribute</u>(String name)
-
-  //Définit la durée (en secondes) d'inactivité d'une session
-  void <u>setMaxInactiveInterval</u>(int interval)
-
-  //Renvoie la durée (en secondes) d'inactivité d'une session
-  int <u>getMaxInactiveInterval</u>()
-
-  //Renvoie la date (en mili-secondes depuis EPOCH) de dernière utilisation
-  long <u>getLastAccessedTime</u>()
-
-  //Détruit la session en cours
-  void <u>invalidate</u>()</code>
-</div>
-<div class="sws-slide">
-<h1>Classe HttpServletRequest</h1>
-<p>Propose plusieurs méthodes : </p>
-<code style="background:white">  //Récupère la valeur des cookies:
-  String[] <u>getCookies()</u>
-
-  //Récupère les paramètres passés par un formulaire :
-  Map&lt;String, String[]&gt;<u>getParameterMap</u>()
-
-  //Récupère un paramètre particulier
-  String[]<u>getParameter</u>(String name)
-</code>
-</div>
-<div class="sws-slide">
-<h1>Classe HttpServletResponse</h1>
-<p>Propose plusieurs méthodes : </p>
-<code style="background:white">  //Renvoie une erreur HTTP (404 par exemple)
-  void <u>sendError(int code)</u>
-
-  //Ajoute un cookie au site
-  void <u>addCookie</u>(Cookie c)
-
-  //Effectue une redirection temporaire
-  void <u>sendRedirect</u>(String url)
-</code>
-</div>
-<div class="sws-slide">
-<h1>Classe Cookie</h1>
-<p>Propose plusieurs méthodes : </p>
-<code style="background:white">  //Constructeur
-  <u>Cookie</u>(String name, String value)
-
-  //Expiration en secondes
-  void <u>setMaxAge</u>(int a)
-</code>
-</div>
-<h1>Spécificités de Tomcat</h1>
-<div class="sws-slide">
-  <h1>Chemins par défaut</h1>
-<p>Par défaut le serveur Tomcat tourne sur le port 8080 (configurable)</p>
-<ul>
-  <li><tt>/var/lib/tomcat/webapps/toto/</tt> correspond à l'URL
-    <tt>http://domaine:8080/toto</tt>
-</li>
-  <li><tt>/var/lib/tomcat/webapps/toto/WEB-INF/</tt> contient des
-  fichiers de configuration</li>
-  <li><tt>/var/lib/tomcat/webapps/toto/WEB-INF/classes/</tt> contient des
-  fichiers <tt>.class</tt> auxiliaires</li>
-</ul>
-<p>(ce sera configuré légèrement différement au PUIO)</p>
-</div>
-<h1>Accès aux classes JSP</h1>
-<div class="sws-slide">
-  <p>Il faut avoir le fichier <tt>jsp-api.jar</tt> dans le
-  classpath</p>
-  <code> javac -cp /chemin/vers/jsp-api.jar MaClasse.java </code>
-  <p>On peut ensuite copier le <tt>.class</tt>
-  dans <tt>WEB-INF/classes</tt></p>
-</div>
-</body>
-</html>