Maison > Java > javaDidacticiel > Comment personnaliser le mappage de servlets pour un service efficace de contenu statique ?

Comment personnaliser le mappage de servlets pour un service efficace de contenu statique ?

Linda Hamilton
Libérer: 2024-12-15 05:00:40
original
221 Les gens l'ont consulté

How to Customize Servlet Mapping for Efficient Static Content Serving?

Personnalisation du mappage de servlets pour la diffusion de contenu statique

Contexte :

Lors du déploiement d'applications Web sur différents conteneurs, des variations dans les servlets par défaut qui gèrent la gestion du contenu statique peuvent survenir. Cela peut entraîner des conflits avec la structure d'URL souhaitée.

Exigences du servlet :

Pour résoudre ce problème, un servlet personnalisé est souhaité avec les caractéristiques suivantes :

  • Aucune dépendance externe
  • Simple et fiable
  • Supports En-tête If-Modified-Since (méthode getLastModified personnalisable)
  • Prise en charge facultative de l'encodage gzip, des balises etags, etc.

Considérations sur le mappage :

Pour obtenir la structure d'URL souhaitée (détaillée dans la question), le mappage du servlet doit ressembler au suivant :

<servlet-mapping>
    <servlet-name>main</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>
Copier après la connexion

Solution proposée :

Bien que des servlets externes répondant aux exigences soient disponibles, une approche plus simple a été conçue. En mappant les fichiers de contenu par extension au servlet par défaut et tout le reste à un servlet personnalisé nommé « myAppServlet », la fonctionnalité souhaitée peut être obtenue. Le mappage résultant serait :

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>myAppServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
Copier après la connexion

Avantages :

Cette approche garantit que les demandes de contenu statique (images, CSS, etc.) sont traitées par défaut servlet, tandis que toutes les autres requêtes sont acheminées vers le servlet personnalisé. Il fonctionne parfaitement avec les conteneurs Jetty et Tomcat.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal