Utilisation du fichier de configuration des types de client avec PageListServlet
Les informations de configuration de PageListServlet peuvent être définies dans le fichier des extensions Web IBM®. Ce fichier des extensions Web IBM est créé et stocké dans le fichier WAR (Web Application Archive) par un outil d'assemblage.
Pourquoi et quand exécuter cette tâche
Avertissement : L'extension personnalisée du servlet PageList
est obsolète dans WebSphere Application Server Version 9.0 et
sera supprimée dans une future édition. Donnez une nouvelle architecture à vos applications existantes de manière à utiliser les classes javax.servlet.filter au lieu des classes com.ibm.servlet. A partir de la
spécification Servlet 2.3 (classes javax.servlet.filter), vous pouvez intercepter les
requêtes et examiner les réponses. Vous pouvez également utiliser les classes
javax.servlet.filter pour les fonctions de chaînage, de mise en forme ou de troncature
des réponses.
Pour configurer et implémenter des listes de pages, procédez aux opérations ci-dessous.
Procédure
Extension de PageListServlet
L'exemple suivant illustre la façon dont un servlet étend la classe PageListServlet et identifie le type du langage de marquage requis par le client. Le servlet utilise ensuite la méthode callPage afin d'appeler un fichier JSP approprié. Dans cet exemple, le fichier JSP qui fournit le langage de balisage approprié pour la réponse est Hello.page.
public class HelloPervasiveServlet extends PageListServlet implements Serializable
{
/*
* doGet -- Traitement des demandes GET HTTP en entrée
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// Nom de la page à appeler :
String pageName = "Hello.page";
// Vérifier d'abord si le servlet a été appelé avec un queryString contenant
// une valeur de langage de balisage.
// Par exemple, si le servlet est appelé de cette façon :
// http://localhost/servlets/HeloPervasive?mlname=VXML
// utilisez ensuite cette méthode :
String mlname= getMLNameFromRequest(request);
// Si aucun type de langage de marquage n'est fourni dans la queryString,
// essayer de déterminer le
// Type du client de la requête, puis utiliser le nom du langage de marquage configuré dans
// le fichier client_types.xml.
if (mlName == null)
{
mlName = getMLTypeFromRequest(request);
}
try
{
// Appel de la page de demande.
callPage(mlName, pageName, request, response);
}
catch (Exception e)
{
handleError(mlName, request, response, e);
}
}
}