Pour utiliser une application XUL via un serveur web, il faut configurer un certain nombre de choses.
Lorsque le serveur web envoi un fichier au navigateur, il lui indique son type (appelé Mime-type). Cela permet au navigateur de pouvoir traiter correctement ce fichier en fonction de son contenu. Lorsque le serveur web envoi un fichier xul, il faut donc envoyer le mime-type correspondant à XUL. Idem pour RDF, CSS etc...
Il faut ajouter dans la configuration d'Apache (httpd.conf) ou dans un fichier .htaccess à la racine de votre site, les lignes suivantes pour qu'il envoie les bons types MIME pour les fichiers suivants (vérifiez toutefois si ces types n'existent pas déjà dans le fichier mimes.type d'apache ):
AddType application/x-xpinstall .xpi
AddType application/vnd.mozilla.xul+xml .xul
AddType text/xml .rdf .xbl
AddType application/x-x509-ca-cert .cacert
D'une manière plus générale, pour tout type MIME et toutes extensions:
AddType <type MIME> <extension>[ <extension>]*
ToDo : mime type text/rdf à tester pour RDF
Il est possible de génerer à la volée des fichiers xul ou RDF, de la même manière que le html. Par défaut, les fichiers PHP envoyent le mime-type du html (text/html). Il faut donc, lorsque l'on génére du xul ou du RDF, indiquer au navigateur qu'il s'agit d'un contenu XUL ou RDF. On utilise alors la fonction PHP header, à mettre au début du script PHP.
Pour du XUL, on fera par exemple :
<?php
header('Content-type: application/vnd.mozilla.xul+xml');
// ... génération de XUL
?>
Dans le fichier php.ini, le paramètre short_tags doit être sur off. Il faut donc ouvrir son code php avec <?php et non plus <? (cette notation pouvant servir à la fois au PHP et au XUL, elle se révèle trop ambiguë).
Pour indiquer le bon content-type en jsp, il suffit d'inclure
<%@ page contentType="application/vnd.mozilla.xul+xml" %>
Et voici un exemple dans une servlet :
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class UneServlet extends HttpServlet {
...
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("application/vnd.mozilla.xul+xml");
PrintWriter out = res.getWriter();
out.println("<window>");
...
out.close();
}
}
Rubrique ApplisWeb
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.