Voici les codes fournis pour les TP M4102
Le Tiny Java Web Server tjws.zip
Le fichier jquery.js
Le fichier json
Lancement sous Windows quand Fédora n'est pas disponible à l'IUT :
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 %%deploydir%%/~~~/_jsp -gnu.jspengine.JspServlet.classloadername %%classloader%%
Exemple d'arborescence
. ├── 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
Exemple de fichier web.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>
Exemple de classe 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>"); } }
Commandes utiles :
javac -cp ../Tjws/lib/servlet.jar -d --racine-des-classes-- --les-sources-- jar cf --mon-war-- WEB-INF jar uf --mon-war-- index.html
Si Fédora ne fonctionne pas :
"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
Vous pouvez télécharger la libraire Java pour utiliser JSON :
$.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 ...");
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 ();
$ javac -cp ../Tjws/lib/servlet.jar:WEB-INF/lib/json-simple-1.1.1.jar -d WEB-INF/classes/ src/RemoteDir.java
Vous pouvez télécharger la libraire JQuery :
Le seveur pour le DNS dynamique est ici :
Exemple d'instruction permettant de récupérer un élément suivant sont identifiant “id” dans le document :
document.getElementsByTagId (id);
Exemple d'instruction permettant de récupérer un tableau de tous les éléments de type “tag” dans le document :
document.getElementsByTagName (tag);
$ mkdir tp4 $ cd tp4 $ unzip m4102-tp4.zip $ mv lib/*.jar . $ zip -r m4102-tp4.zip lib/ com/ META-INF/ $ mv m4102-tp4.zip m4102-tp4.jar
Faire un répertoire racine du serveur web exemple “docRoot”.
$ java -jar m4102-tp4.jar -p 9090 -d docRoot
Testez : http://localhost:9090/getEvts
Vous obtenez un texte du genre :
[{"evt":"1","dateTime":"2015-02-02 09:11:32","data":"Function: processNotice File: MainThread.cpp Line: 6201 Invoked Function: CMainThread::genericNoticeCategoryHandler Return Code: -327492","error":true},{"evt":"5","dateTime":"2015-02-02 09:11:32","data":"The HTTPS probe to 10.0.0.70 resulted in a redirect","error":false}]
Créez une page HTML et le javascript pour obtenir les traces du serveur par exemple :