Heim  >  Artikel  >  Java  >  Zusammenfassung gängiger Verarbeitungsmethoden für statische Dateien in Javaweb

Zusammenfassung gängiger Verarbeitungsmethoden für statische Dateien in Javaweb

高洛峰
高洛峰Original
2017-01-24 16:58:141276Durchsuche

Die Beispiele in diesem Artikel fassen die gängigen Verarbeitungsmethoden statischer Dateien in Javaweb zusammen, die für die Entwicklung von Javaweb-Programmen von großem praktischen Wert sind:

Methode 1: Aktivieren Sie das Standardservlet von Tomcat um statische Dateien zu verarbeiten

In web.xml hinzufügen:

<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>

Hinweis: Um vor DispatcherServlet zu schreiben, lassen Sie defaultServlet abfangen Die Anfrage zuerst, damit ich die Anfrage nicht im Frühling betrete, ist die Leistung meiner Meinung nach 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 wird mit dem Namen des Standard-Servlets geliefert – „resin-file“
Der Name des Standard-Servlets, das mit WebLogic geliefert wird – „FileServlet“
Der Name des Standard-Servlets, das mit WebSphere geliefert wird – „SimpleFileServlet“

Methode zwei: mvc:resources wird in Spring 3.0.4 und späteren Versionen bereitgestellt. Verwendungsmethode:

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

Beschreibung: /images/** ist der ResourceHttpRequestHandler-Verarbeitung zugeordnet. Der Standort gibt den Speicherort der statischen Ressource an. Er kann sich im Stammverzeichnis der Webanwendung oder im JAR-Paket befinden, sodass die statischen Ressourcen in das JAR komprimiert werden können Paket. Cache-Periode kann statische Ressourcen im Web-Cache erstellen

Methode 3, verwenden Sie 7ea4b1506262239595c16a77e7a712b1

<mvc:default-servlet-handler/>

Die URL „/**“ wird in der URLMap von SimpleUrlHandlerMapping registriert und der Zugriff auf statische Ressourcen wird von HandlerMapping zur Verarbeitung und Rückgabe an org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler übertragen.
DefaultServletHttpRequestHandler verwendet das Standard-Servlet jedes Servlet-Containers.

Zusätzliche Erklärung: Die Ausführungsreihenfolge mehrerer HandlerMapping-Probleme:

Der Auftragsattributwert von DefaultAnnotationHandlerMapping ist: 0
7120adfc23a4cc2dd8d4d6bfde31a922Der Auftragsattributwert des automatisch registrierten SimpleUrlHandlerMapping ist: 2147483646

7ea4b1506262239595c16a77e7a712b1Der Auftragsattributwert des automatisch registrierten SimpleUrlHandlerMapping ist: 2147483647

Spring führt die Bestellung zuerst mit dem kleineren Wert 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?

Schließlich verwenden Plan 2 und Plan 3 den Interceptor, 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.

Weitere verwandte Artikel zu gängigen Verarbeitungsmethoden statischer Dateien in Javaweb finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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