Servlets ExperSHOP


Page Principale Table

Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog


Servlets ExperSHOP

Son rôle principal est d'interpréter des pages DynHtml, pour générer dynamiquement du contenu HTML.

Tout ce qui concerne la gestion de la session client (déterminer qui est connecté) et du panier d'achats est transparent pour l'utilisateur.

ExperSHOP se compose de plusieurs servlets:

  • com.expershop.lite.ExperSHOP est le servlet ExperShop : dites-lui quelle page DynHtml afficher, et quelle action éxécuter.
    Le servlet ExperSHOP tient à jour le contenu du panier d'achats du client.
    En particulier, le servlet ExperSHOP dispose d'un paramètre appelé ShoppingCart, qui permet d'itérer sur le contenu du panier d'achats, d'afficher le prix total des produits présents dans le panier, etc...
  • com.expershop.lite.ESAdminServlet est le servlet d'administration : ses fonctions sont équivalentes à celle du servlet ExperSHOP, avec des fonctions supplémentaires comme un contrôle d'accès par mot de passe, des outils pour gérer les commandes clients dans un site marchand, etc...
  • com.expershop.lite.ESUploaderServlet est le servlet d'upload de fichier sur le serveur. Cette servlet permet de telecharger sur le serveur un ou plusieurs fichiers.

Paramètres HTTP

Le servlet ExperShop a besoin des paramètres HTTP suivants :
  • Page: La page DynHtml à afficher, en relatif par rapport au répertoire ESRootDir/ESTemplates/Shop pour le servlet ExperSHOP, ou ESRootDir/ESTemplates/Admin pour le servlet d'administration. (OBLIGATOIRE)
  • Action: L'action à effectuer avant d'afficher la page (FACULTATIF)
    Exemple: l'action prédéfinie ESAddToCart sera utilisée pour ajouter un article dans le panier d'achats, avant d'afficher son contenu.
    Voir le Guide des Actions ExperSHOP pour plus de détails.
  • ActionFailed: La page DynHtml à afficher en cas d'échec d'una action (FACULTATIF, n'a de sens que si le paramètre Action est défini).
  • Cache: Si ce paramètre est présent et égal à "N" ou "n", la prochaine page ne sera pas mise dans le cache du browser (par defaut, le cache est activé).
  • ContentType: L'alias de "Content Type" MIME pour la prochaine page (FACULTATIF, défaut text/html). Les alias de ContentType et les types MIME qui leur correspondent sont définis dans le fichier de configuration de l'application (voir les propriétés "contenttype.list" et "contenttype.[alias].value" dans le documentation de configuration.
  • La valeur du "cookie" (identifiant de session) ExperSHOP : nécessaire à ExperSHOP pour savoir qui est connecté.
  • Tout autre paramètre qui peut être nécessaire à ExperSHOP pour interpréter la prochaine page DynHtml (par exemple, une Référence Produit pour afficher une page DynHtml qui détaille les propriétés d'un produit).
La première fois que le servlet est appelé, un nom d'application peut lui être spécifié, en utilisant un paramètre HTTP appelé "S_": ce paramètre est nécéssaire si vous souhaitez supporter plusieurs applications (par exemple, des sites marchands multiples).

Exemple:

  <a href=com.expershop.lite.ExperSHOP?S_=SurfShop>
  Surf Shop</a><br>
  <a href= com.expershop.lite.ExperSHOP?S_=Supermarket>
  Faites vos courses!</a><br>
  
Exemple de lien HTTP vers une page ExperSHOP, dans une page DynHtml (liste des rayons de la boutique) :
  <a href= com.expershop.lite.ExperSHOP?$COOKIE$&Page=ESListeRayons.tmpl>
  Rayons</a>
  
$COOKIE$ sera remplacé par toute l'information nécessaire à ExperSHOP pour savoir qui est connecté.
Page dit à ExperSHOP quelle page DynHtml afficher lorsque l'utilisateur clique sur le lien.

Voir le Guide DynHtml pour plus de détails.

Panier d'achats, et autres "Data Sets" prédéfinis

Dans les pages DynHtml, vous pouvez boucler sur des "data sets" (jeux de données, comme par exemple des résultats de requêtes SQL) et afficher leur contenu.

Certains "Data Sets" sont prédéfinis, et toujours accessibles:

  • Le panier d'achats (nom du data set: ShoppingCart): voir le document utilisation du panier d'achats.
  • Le fichier de configuration de l'application (nom du data set: ShopConfig) : chaque propriété définie dans le fichier de configuration peut être affichée dans une page DynHtml, en spécifiant $ShopConfig:[nom-de-propriete]$; par exemple, $ShopConfig:shop.Currency$ affiche la valeur de la propriété shop.Currency (devise utilisée).
  • La date courante (nom du data set: CurrentDate): voir le document utiliser les dates dates.

Paramètres et Data Sets spécifiques du servlet d'Administration

Voir la documentation du servlet d'administration pour plus de détails.

com.expershop.lite.ESUploaderServlet

La servlet com.expershop.lite.ESUploaderServlet permet d'uploader des fichiers textes ou binaires. Il faut préciser le ou les fichiers source qui doivent être uploader, le répertoire de destination, ainsi que l'url de redirection qui sera utilisé une fois que l'upload est terminé. Les paramètres obligatoires sont les suivants:

  • urles - url de redirection.
  • overwrite - on ou off. Si on, le fichier sera écrasé, sinon le fichier ne sera pas écrasé.
  • uploadfile - nom du fichier à uploader.
  • uploadfile[n] avec n > 1 - nom d'un fichier à uploader.
  • uploaddirectory - répertoire de destination, ce répertoire est un chemin relatif. Il est calculé à partir du chemin décrit dans le fichier de configuration de l'application (app.UploadDir):
    [valeur de app.UploadDir]/[valeur de uploaddirectory]
Exemple:
  <form enctype=multipart/form-data method=POST 
             action=com.expershop.lite.ESUploaderServlet>
    <input type=hidden size=20 name="urles" 
             value="/servlet/com.expershop.lite.ExperSHOP?$Cookie$&Page=MyPage.tmpl"><p>
    <input type=hidden size=20 name="overwrite" value="on">
    file to upload :        <input type=file size=20 name=uploadfile value=><p>
    destination directory : <input type=text size=20 name=uploaddirectory 
             value=unRepertoire/d/upload><p>

    <input type="submit" name="UPLOADSERVLET" value="UPLOAD">
</form>