Maison >Java >javaDidacticiel >Introduction détaillée à Spring MVC accédant aux fichiers statiques
Cet article présente principalement les informations pertinentes de Spring MVC pour accéder en détail aux fichiers statiques. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Comment intercepter "*. Pour les URL avec un suffixe comme ". do", il n'y a aucun problème de ne pas pouvoir accéder aux ressources statiques.
Si votre DispatcherServlet intercepte "/" et intercepte toutes les requêtes afin d'implémenter le style REST, alors l'accès aux fichiers statiques tels que *.js, *.jpg sera également intercepté.
Nous devons résoudre ce problème.
Objectif : les fichiers statiques sont accessibles normalement et 404 ne peut pas être signalé lorsque les fichiers statiques sont introuvables.
Option 1 : Activer le serveur par défaut de Tomcat pour traiter les fichiers statiques
Code XML
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping>
Pour en configurer plusieurs, un pour chaque fichier
doit être écrit devant DispatcherServlet, laissez defaultServlet intercepter la requête en premier, afin que la requête n'entre pas dans Spring, je je pense que la performance est la meilleure.
Le nom du servlet par défaut fourni avec Tomcat, Jetty, JBoss et GlassFish - "default"
Le nom du servlet par défaut fourni avec Google App Engine --"_ah_default"
Resin est livré avec le nom du servlet par défaut -- "resin-file"
Le nom du servlet par défaut fourni avec WebLogic -- "FileServlet"
Le nom du servlet par défaut fourni avec WebSphere -- "SimpleFileServlet"
Option 2 : Au printemps 3.0.4 et versions ultérieures, mvc:resources est fourni Comment utiliser :
Code XML
<!-- 对静态资源文件的访问 --> <mvc:resources mapping="/images/**" location="/images/" />/images/** est mappé à ResourceHttpRequestHandler pour le traitement, et location spécifie l'emplacement de la ressource statique. Elle peut se trouver sous le répertoire racine de l'application Web ou dans le fichier jar. package, afin que les ressources statiques puissent être compressées dans le package jar. cache-period peut activer la mise en cache Web des ressources statiques
Erreur AVERTISSEMENT : aucun mappage trouvé pour la requête HTTP avec l'URI [/mvc/user/findUser/lisi/770] dans DispatcherServlet avec le nom 'springMVC'
<mvc:default-servlet-handler/>enregistrera l'URL "/**" dans l'urlMap de SimpleUrlHandlerMapping et transférera l'accès aux ressources statiques de HandlerMapping vers org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler pour le traitement et le retour.
DefaultServletHttpRequestHandler Utilisez le servlet par défaut de chaque conteneur de servlet
La valeur de l'attribut d'ordre de DefaultAnnotationHandlerMapping est : 0
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!