Heim > Java > javaLernprogramm > Detaillierte Einführung in den Zugriff von Spring MVC auf statische Dateien

Detaillierte Einführung in den Zugriff von Spring MVC auf statische Dateien

巴扎黑
Freigeben: 2017-09-08 09:38:20
Original
1853 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die relevanten Informationen von Spring MVC für den Zugriff auf statische Dateien im Detail vorgestellt, die einen bestimmten Referenzwert haben. Interessierte Freunde können sich auf

Wie man „*“ abfängt, beziehen. tun“, gibt es kein Problem, nicht auf statische Ressourcen zugreifen zu können.

Wenn Ihr DispatcherServlet „/“ abfängt und alle Anfragen abfängt, um den REST-Stil zu implementieren, wird auch der Zugriff auf statische Dateien wie *.js, *.jpg abgefangen.

Wir müssen dieses Problem lösen.

Zweck: Auf statische Dateien kann normal zugegriffen werden, und 404 kann nicht gemeldet werden, wenn statische Dateien nicht gefunden werden können.

Option 1: Aktivieren Sie das Standard-Servlet von Tomcat, um statische Dateien zu verarbeiten

Xml-Code


<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>
Nach dem Login kopieren

Um mehrere zu konfigurieren, sollte eine für jede Datei

vor DispatcherServlet geschrieben werden. Lassen Sie defaultServlet die Anforderung zuerst abfangen, damit die Anforderung nicht in Spring eingeht, I I Ich denke, die Leistung ist die beste.

Der Name des Standard-Servlets, das mit Tomcat, Jetty, JBoss und GlassFish geliefert wird – „default“
Der Name des Standard-Servlets, das mit Google App Engine geliefert wird – „_ah_default“
Resin kommt mit Der Name des Standard-Servlets – „resin-file“
Der Name des Standard-Servlets, das mit WebLogic geliefert wird – „FileServlet“
Der Name des Standard-Servlets, das mit WebSphere geliefert wird – „SimpleFileServlet "

Option 2: In Spring 3.0.4 und späteren Versionen wird mvc:resources bereitgestellt. Verwendung:
Xml-Code


<!-- 对静态资源文件的访问 -->  
<mvc:resources mapping="/images/**" location="/images/" />
Nach dem Login kopieren

/images/** wird zur Verarbeitung dem ResourceHttpRequestHandler zugeordnet, und der Standort gibt den Speicherort der statischen Ressource an. Er kann sich im Stammverzeichnis der Webanwendung oder im JAR-Paket befinden. damit die statischen Ressourcen in das JAR-Paket komprimiert werden können. Cache-Periode kann Web-Caching von statischen Ressourcen ermöglichen

Wenn der folgende Fehler auftritt, kann es daran liegen, dass nicht konfiguriert ist.
Fehlerwarnung: Keine Zuordnung für HTTP-Anfrage mit URI [/mvc/user/findUser/lisi/770] im DispatcherServlet mit dem Namen „springMVC“ gefunden

Verwenden Sie


Option drei:

Verwenden Sie <mvc:default-servlet-handler/>

Xml-Code


registriert die URL „/**“ in der URLMap von SimpleUrlHandlerMapping und überträgt den Zugriff auf statische Ressourcen von HandlerMapping an org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler zur Verarbeitung und Rückgabe.

DefaultServletHttpRequestHandler Verwenden Sie das Standard-Servlet jedes Servlet-Containers
<mvc:default-servlet-handler/>
Nach dem Login kopieren


Zusätzliche Erklärung: Die Ausführungsreihenfolge mehrerer HandlerMapping-Probleme:
Der Auftragsattributwert von DefaultAnnotationHandlerMapping ist: 0

< mvc :resources/ > Der Auftragsattributwert des automatisch registrierten SimpleUrlHandlerMapping ist: 2147483646

<mvc:default-servlet-handler/> Der Auftragsattributwert des automatisch registrierten SimpleUrlHandlerMapping ist: 2147483647

spring führt zuerst den kleineren Bestellwert aus. Wenn Sie auf eine a.jpg-Bilddatei zugreifen, suchen Sie zunächst den Prozessor über DefaultAnnotationHandlerMapping. Er darf nicht gefunden werden, da wir keine Aktion namens a.jpg haben. Suchen Sie dann in aufsteigender Reihenfolge des Bestellwerts. Da das letzte SimpleUrlHandlerMapping mit „/**“ übereinstimmt, wird es definitiv übereinstimmen und Sie können auf das Bild antworten.

Um auf ein Bild zuzugreifen, müssen Sie mehrere Matching-Ebenen durchlaufen. Sie sind sich nicht sicher, wie die Leistung ist?

Abschließend möchte ich erklären, dass Plan 2 und Plan 3 den Interceptor verwenden, wenn beim Zugriff auf statische Ressourcen ein passender (ungefährer) Gesamt-Interceptor vorhanden ist. Wenn Sie die Berechtigungsprüfung beim Abfangen implementieren, achten Sie darauf, diese Anforderungen nach statischen Dateien zu filtern.

Wenn Ihr DispatcherServlet URL-Suffixe wie *.do abfängt, treten die oben genannten Probleme nicht auf. Es ist immer noch praktisch, ein Suffix zu haben.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Zugriff von Spring MVC auf statische Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage