Detaillierte Erklärung zum Festlegen des Kontextpfads in der Webanwendung

Detaillierte Erklärung zum Festlegen des Kontextpfads in der Webanwendung

URL: http://hostname.com/contextPath/servletPath/pathInfo

Anlegestelle

Wenn contextPath nicht angegeben ist, wird standardmäßig der Stammkontext verwendet und der Pfad des Stammkontexts ist "/".

Kriegsname.war

Ohne XML-IoC-Datei:

  • Wenn der WAR-Dateiname myapp.war lautet, ist der Kontextpfad: /myapp;
  • Wenn der WAR-Dateiname ROOT.war lautet, lautet der Kontextpfad: /;
  • Wenn der WAR-Dateiname ROOT-foobar.war lautet, ist der Kontextpfad / und der virtuelle Host ist foobar.

WEB-INF/jetty-web.xml

<Configureclass="org.eclipse.jetty.webapp.WebAppContext">
  <Setname="Kontextpfad">/test</Set>
  ...
</Konfigurieren>

Kater

Einzelne <context>-Elemente können auf verschiedene Arten definiert werden:

  • Definiert in der Datei /META-INF/context.xml der Webanwendung. Wenn das copyXML-Attribut des Hosts wahr ist, wird die Datei context.xml in das Verzeichnis $CATALINA_BASE/conf/[enginename]/[hostname] kopiert und umbenannt. Die Namenskonvention bezieht sich auf die Beschreibung des Abschnitts /META-INF/context.xml.
  • Platzieren Sie eine XML-Datei direkt im Verzeichnis $CATALINA_BASE/conf/[enginename]/[hostname]. Die Dateinamenspezifikation und der Inhalt beziehen sich auf die Beschreibung des Abschnitts META-INF/context.xml. Diese Datei hat eine höhere Priorität als /META-INF/context.xml.
  • Definieren Sie ein <Context>-Element im <Host>-Element der Datei conf/server.xml des Tomcat-Servers.

META-INF/context.xml

Es besteht eine enge Beziehung zwischen Kontextname, Kontextpfad, Kontextversion und Basisdateiname:

  • Wenn keine Kontextversion vorhanden ist, sind Kontextname und Kontextpfad identisch.
  • Wenn der Kontextpfad eine leere Zeichenfolge ist, ist der Basisname ROOT;
  • Wenn Kontextpfad keine leere Zeichenfolge ist, gilt: Basisname = Kontextpfad, wobei das erste /-Zeichen entfernt und das /-Zeichen durch das #-Zeichen ersetzt wurde.

Zum Beispiel:

Kontextpfad Kontextversion Kontextname Basisdateiname Beispieldateinamen (.xml, .war und Verzeichnis)
/foo Keiner /foo foo foo.xml, foo.war, foo
/foo/Leiste Keiner /foo/Leiste foo#Bar foo#bar.xml, foo#bar.war, foo#bar
Leere Zeichenfolge Keiner Leere Zeichenfolge WURZEL ROOT.xml, ROOT.war, ROOT
/foo 42 /foo##42 foo##42 foo##42.xml, foo##42.war, foo##42
/foo/Bar 42 /foo/bar##42 foo#bar#42 foo#bar##42.xml, foo#bar##42.war, foo#bar##42
Leere Zeichenfolge 42 ##42 WURZEL##42 ROOT##42.xml, ROOT##42.war, ROOT##42

Server.xml

Es wird nicht empfohlen, das Element <context> in der Datei conf/server.xml hinzuzufügen, da diese Datei nur durch einen Neustart von Tomcat neu geladen werden kann, was die normale Verwendung anderer WebAPPs beeinträchtigt.

Standardmäßige context.xml

Tomcat verfügt über ein Standardkontextelement, das für alle Anwendungen gilt. Seine Priorität ist jedoch auch die niedrigste und alle Konfigurationen können von der Anwendung überschrieben werden.

Es gibt zwei Standard-Context.xml-Dateien:

  • Eine davon ist $CATALINA_BASE/conf/context.xml. Die Informationen in diesem Kontextelement werden von allen Anwendungen geladen.
  • Eine davon ist $CATELINA_BASE/conf/[enginename]/[hostname]/context.xml.default. Die Informationen in diesem <context>-Element werden von allen Anwendungen in diesem virtuellen Host geladen.

Dies ist das Ende dieses Artikels zum Festlegen des Kontextpfads in Webanwendungen. Weitere Informationen zum Festlegen des Kontextpfads in Webanwendungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Das Springcloud-Gateway legt den Kontextpfadvorgang fest
  • Analysieren Sie das Problem des in Spring Boot eingebetteten Tomcat bezüglich getServletContext ().getRealPath, um den temporären Pfad zu erhalten
  • Detaillierte Erklärung zur Verwendung von server.servlet.context-path in Springboot 2.x
  • ${pageContext.request.contextPath}-Wertproblem und -Lösung in JavaScript

<<:  Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die vue3.0-Projektarchitektur erstellen

>>:  MySQL Series 6-Benutzer und Autorisierung

Artikel empfehlen

Zusammenfassung der vier Klick-Antwortmethoden von Button

Button wird ziemlich oft verwendet. Hier habe ich...

Sammlung von 25 Schriftarten, die in berühmten Website-Logos verwendet werden

In diesem Artikel sind die Schriftarten zusammeng...

So legen Sie Listenstilattribute in CSS fest (lesen Sie einfach diesen Artikel)

Eigenschaften des Listenstils Es gibt 2 Arten von...

Detaillierte Erläuterung der Verwendung von Docker-Tag und Docker-Push

Detaillierte Erklärung des Docker-Tags Die Verwen...

Beispielcode für CSS-Bildanimationseffekte (Fotorahmen)

Dieser Artikel stellt den Beispielcode für CSS-Bi...

Lösung für die Baidu-Site-Suche, die https nicht unterstützt (getestet)

Seit kurzem ist https auch auf dem Handy möglich....

Perfekte Lösung für keine rc.local-Datei in Linux

Neuere Linux-Distributionen verfügen nicht mehr ü...

Detaillierte Erklärung zur Verwendung von CSS3 RGB und RGBA (transparente Farbe)

Ich glaube, jeder Mensch ist sehr sensibel für Fa...

So stellen Sie MongoDB-Container mit Docker bereit

Inhaltsverzeichnis Was ist Docker einsetzen 1. Zi...

Eine kurze Analyse der Verwendung des HTML-Webpack-Plugins

Wenn Sie zum Starten der Seite das Plugin „html-w...