Outils pour utilisateurs

Outils du site


exercices:debut

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
exercices:debut [09/03/2020 09:28]
webmestre
exercices:debut [20/02/2021 20:26] (Version actuelle)
webmestre
Ligne 1: Ligne 1:
 +====== Exercices ======
 +
 +Voici les codes fournis pour les TP M4102
 +
 +===== TP3 =====
 +
 +==== Servlet ====
 +
 +Le Tiny Java Web Server {{:exercices:tjws.zip|tjws.zip}}
 +
 +Le fichier {{:exercices:jquery.js|jquery.js}}
 +
 +Le fichier {{:exercices:json-simple-1.1.1.jar|json}}
 +
 +Lancement sous Windows quand Fédora n'est pas disponible à l'IUT :
 +
 +<code bash>
 +cd ..
 +set JDK_HOME=C:\Program Files\Java\jdk1.8.0_101
 +set SERVLET_API=lib\servlet.jar
 +java -cp "%SERVLET_API%;lib\war.jar;lib\webserver.jar;lib\jsp.jar;lib\jspengine.jar;%JDK_HOME%\lib\tools.jar" -Dtjws.webappdir=webapps -Dtjws.wardeploy.warname-as-context=yes Acme.Serve.Main -a aliases.properties -p 80 -l -c cgi-bin -j gnu.jspengine.JspServlet -gnu.jspengine.JspServlet.scratchdir <nowiki>deploydir</nowiki>/~~~/_jsp -gnu.jspengine.JspServlet.classloadername <nowiki>classloader</nowiki>
 +
 +
 +</code>
 +
 +Exemple d'arborescence
 +
 +<code bash>
 +.
 +├── appli.war
 +├── compilation.sh
 +├── index.html
 +├── makewar.sh
 +├── src
 +│   └── com
 +│       └── iut
 +│           └── servlets
 +│               └── Action.java
 +└── WEB-INF
 +    ├── classes
 +    │   └── com
 +    │       └── iut
 +    │           └── servlets
 +    │               └── Action.class
 +    ├── lib
 +    └── web.xml
 +
 +
 +</code>
 +
 +Exemple de fichier web.xml :
 +
 +<code XML>
 +<?xml version="1.0" encoding="UTF-8"?>
 +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +  xmlns="http://java.sun.com/xml/ns/javaee"
 +  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 +  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="M4201C" version="2.5">
 +
 +   <display-name>M4102C</display-name>
 +
 +   <description>Cours M4102C - François MERCIOL</description>
 +
 +   <welcome-file-list>
 +     <welcome-file>index.html</welcome-file>
 +   </welcome-file-list>
 +
 +   <servlet>
 +      <servlet-name>ServletAction</servlet-name>
 +      <servlet-class>com.iut.servlets.Action</servlet-class>
 +   </servlet>
 +   <servlet-mapping>
 +      <servlet-name>ServletAction</servlet-name>
 +      <url-pattern>/action</url-pattern>
 +   </servlet-mapping>
 +
 +   <servlet>
 +     <servlet-name>Date</servlet-name>
 +     <servlet-class>HorlogeServlet</servlet-class>
 +   </servlet>
 +   <servlet-mapping>
 +     <servlet-name>Date</servlet-name>
 +     <url-pattern>/date</url-pattern>
 +   </servlet-mapping>
 +
 +</web-app>
 +
 +
 +</code>
 +
 +Exemple de classe Java :
 +
 +<code java>
 +import java.io.*;
 +import java.util.Date;
 +import java.text.*;
 +import javax.servlet.*;
 +import javax.servlet.http.*;
 +
 +public class HorlogeServlet extends HttpServlet {
 +   public void doGet(HttpServletRequest request, HttpServletResponse response)
 +throws ServletException, IOException {
 +      SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
 +      PrintWriter pw;
 +
 +      response.setContentType("text/html");
 +      pw=response.getWriter();
 +      pw.println("<h1>"+ dateFormat.format(new Date())+"<h2>");
 +   }
 +}
 +
 +
 +</code>
 +
 +Commandes utiles :
 +
 +<code bash>
 +javac -cp ../Tjws/lib/servlet.jar -d --racine-des-classes-- --les-sources--
 +
 +jar cf --mon-war-- WEB-INF
 +jar uf --mon-war-- index.html
 +
 +
 +</code>
 +
 +Si Fédora ne fonctionne pas :
 +
 +<code bash>
 +"C:\Program Files\Java\jdk1.8.0_101\bin\javac.exe" -cp ../Tjws/lib/servlet.jar -d --racine-des-classes-- --les-sources--
 +
 +"C:\Program Files\Java\jdk1.8.0_101\bin\jar.exe" cf --mon-war-- WEB-INF
 +"C:\Program Files\Java\jdk1.8.0_101\bin\jar.exe" uf --mon-war-- index.html
 +
 +
 +</code>
 +
 +===== TP4 =====
 +
 +==== Servlet & Json ====
 +
 +Vous pouvez télécharger la libraire Java pour utiliser JSON :
 +
 +  * {{:exercices:json-simple-1.1.1.jar|json-simple-1.1.1.jar}}
 +  * et sa documentation [[http://juliusdavies.ca/json-simple-1.1.1-javadocs/|http://juliusdavies.ca/json-simple-1.1.1-javadocs/]]
 +
 +<code javascript>
 +$.ajax({
 +   url : 'http://localhost:8080/Demo/myServlet',
 +   dataType : 'json',
 +   type : 'GET',
 +   data : { name : 'John', location : 'Boston' },
 +   success : function(data) {
 +      if (data.firstname=='Bill')
 +        console.log("C'est Bill !");
 +   },
 +   error : function() {
 +      console.log('Grave erreur !');
 +   }
 +});
 +console.log("Une petite trace ...");
 +
 +
 +</code>
 +
 +<code java>
 +import org.json.simple.JSONArray;
 +import org.json.simple.JSONObject;
 +
 +      JSONObject jsonObject;
 +      JSONArray jsonArray;
 +
 +      jsonObject = new JSONObject ();
 +      jsonObject.put ("type", f.isDirectory () ? "d" : "f");
 +      jsonObject.put ("name", f.getName ());
 +      jsonArray.add (jsonObject);
 +
 +      response.setContentType ("application/json");
 +      pw = response.getWriter ();
 +      pw.print (jsonObject.toJSONString ());
 +      pw.flush ();
 +
 +
 +</code>
 +
 +<code bash>
 +$ javac -cp ../Tjws/lib/servlet.jar:WEB-INF/lib/json-simple-1.1.1.jar -d WEB-INF/classes/ src/RemoteDir.java
 +
 +
 +</code>
 +
 +===== TP5 =====
 +
 +Vous pouvez télécharger la libraire JQuery :
 +
 +  * {{:exercices:jquery.js|jquery.js}}
 +
 +===== TP6 & TP7 =====
 +
 +Le seveur pour le DNS dynamique est ici :
 +
 +  * [[http://www.zandolite.com/TP6/|http://www.zandolite.com/TP6/]] si vous êtes chez vous
 +  * [[http://www.zandolite.com/TP6/?id=MonId|http://www.zandolite.com/TP6/?id=MonId]] si vous êtes en salle TP passant par un mandataire (MonId est un texte qui vous est personnel)
 +
 +  * [[http://www.zandolite.com/TP6/index.html|http://www.zandolite.com/TP6/index.html]] l'état des connexions en cours
 +
  

Outils de la page