Fichier client_types.xml
Le fichier client_types.xml fournit un support de détection du type de client pour les servlets étendant PageListServlet. En utilisant les informations de configuration du fichier client_types.xml, un servlet peut déterminer le type de langage de marquage que le client demandeur exige pour la réponse.
Le support de détection du type de client permet aux servlets d'appeler des fichiers JSP adéquats à l'aide de la méthode callPage. Les servlets sélectionnent des fichiers JSP en fonction du type du langage de marquage de la demande.
Pour identifier le langage de marquage requis par le client, les servlets doivent utiliser la version suivante de la méthode callPage :
callPage(String mlName, String pageName, HttpServletRequest request,
HttpServletResponse response)
où les arguments sont :
- nomLangage - type du langage de marquage
- nomPage - nom de page défini dans la configuration PageListServlet
- demande - objet HttpServletRequest
- réponse - objet HttpServletResponse
Reportez-vous à l'exemple de code d'extension de PageListServlet fourni dans la rubrique "Extension de PageListServlet" pour voir comment la méthode callPage est appelée par un servlet.
Dans l'exemple, la méthode getMLTypeFromRequest(HttpServletRequestrequest request), fournie par la classe PageListServlet inspecte les en-têtes de la demande dans l'objet HttpServletRequest et recherche un élément concordant dans le fichier client_types.xml.
La méthode de détection du type de client effectue les opérations suivantes :
- Elle lit l'objet HttpServletRequest et en extrait le nom et la valeur spécifiés dans l'en-tête de la demande HTTP, puis elle recherche dans le fichier client_types.xml un élément request-header comportant les mêmes nom et valeur (éléments name et value).
- Renvoie la valeur markup-language configurée pour l'élément <client-type>, si une correspondance est trouvée.
- Si plusieurs correspondances sont trouvées, cette méthode renvoie la valeur markup-language du premier élément <client-type> pour lequel une correspondance est trouvée.
- Si elle ne trouve aucune concordance, elle renvoie la valeur du langage de marquage de la page par défaut définie dans la configuration de PageListServlet.
Emplacement
Le fichier client_types.xml est situé dans le
répertoire racine_installation/properties.
Remarques d'utilisation
Passez en revue les réponses aux questions d'utilisation suivantes :
- Ce fichier est-il en lecture seule ?
Non
- Ce fichier est-il mis à jour par un composant produit ?
Non
- Auquel cas, qu'est-ce qui déclenche sa mise à jour ?
Ce fichier est créé et mis à jour manuellement par des utilisateurs.
- Comment et quand le contenu de ce fichier est-il utilisé ?
Les servlets, étendant PageListServlet, utilisent ces fichiers afin de déterminer le type du langage que les clients appelants exigent pour la réponse.
Exemple de fichier
<?xml version="1.0" >
<!DOCTYPE clients [
<!ELEMENT client-type (description, markup-language,request-header+)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT markup-language (#PCDATA)>
<!ELEMENT request-header (name, value)>
<!ELEMENT clients (client-type+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT value (#PCDATA)>]>
<clients>
<client-type>
<description>IBM Speech Client</description>
<markup-language>VXML</markup-language>
<request-header>
<name>user-agent</name>
<value>IBM VoiceXML pre-release version 000303</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vxml</value>
</request-header>
</client-type>
<client-type>
<description>WML Browser</description>
<markup-language>WML</markup-language>
<request-header>
<name>accept</name>
<value>text/x-wap.wml</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vnd.wap.xml</value>
</request-header>
</client-type>
</clients>