Cela devrait être relativement simple à faire mais je n'ai pas encore trouvé de description de la façon de le faire.Interprétation de la requête au format JSP au lieu du servlet
Ma configuration est simple application web qui traite chaque demande par l'intermédiaire d'un servlet (je vais l'appeler MyEverythingServlet pour cette question). Voici une version légèrement modifiée de mon web.xml:
<servlet>
<servlet-name>MyEverythingServlet</servlet-name>
<servlet-class>blah.blah.blah.MyEverythingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyEverythingServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
En ce moment, le servlet est assez simple et soit fait un travail (quand work.do fait partie du chemin) et si un fichier txt est spécifié dans le chemin, nous ferons une validation puis charger le fichier et d'envoyer le texte de la réponse:
response.getOutputStream().print(content);
Ce que je voudrais faire est soit:
- A l'intérieur du servlet, si la requête est une URL vers un fichier .jsp, j'aimerais être capable d'avoir le conteneur interpréter les parties de scriptlet JSP parties/taglib avant d'écrire la chaîne à la réponse.
- Modifiez mon fichier web.xml pour qu'il traite les fichiers .jsp en dehors de MyEverythingServlet.
suggérez-vous que j'utiliser le filtre et le filtre-mapping au lieu de servlet-mapping dans mon fichier web.xml? Ensuite, le filtre chercherait * .jsp et ne ferait rien pour ces requêtes (chain.doFilter())? Comment le filtre envoie-t-il des demandes non-JSP à MyEverythingServlet? –
Vous pouvez également le faire (uniquement si ces fichiers non-JSP sont en dehors du contenu web public et que vous êtes obligé d'utiliser 'FileInputStream' ou ainsi de les lire). Vous devez ensuite mapper le servlet sur un 'modèle-url' plus spécifique et envoyer la requête en utilisant une URL correspondant à ce modèle (je vais à mon tour remettre en question la valeur du filtre ..;)). Mais si ces fichiers sont dans un contenu Web public, il suffit de continuer la chaîne de filtres. Le servlet par défaut intégré du servletcontainer servira le fichier non-JSP pour vous. – BalusC
Ok, je pense que le seul élément qui me manque est comment le filtre transmettra la requête sur MyEverythingServlet. –