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

HTML+CSS+JavaScript zum Erstellen eines einfachen Tic-Tac-Toe-Spiels

Inhaltsverzeichnis Implementieren von HTML CSS hi...

Eine kurze Analyse der Verwendung der Zero-Copy-Technologie in Linux

In diesem Artikel werden mehrere wichtige Zero-Co...

Vue Shuttle-Box ermöglicht Auf- und Abbewegung

In diesem Artikelbeispiel wird der spezifische Co...

So implementieren Sie den Vue-Timer

In diesem Artikelbeispiel wird der spezifische Co...

Anweisungen zur Verwendung des Datenbankverbindungspools Druid

Ersetzen Sie ihn durch den optimalen Datenbankver...

Detaillierte Schritte zum Speichern von Emoji-Ausdrücken in MySQL

Verursacht durch: java.sql.SQLException: Falscher...

CentOS-System-RPM-Installation und -Konfiguration von Nginx

Inhaltsverzeichnis CentOS RPM-Installation und Ko...

Details zur Funktionsverschachtelung und zu Funktionsabschlüssen in js

Inhaltsverzeichnis 1. Geltungsbereich 2. Funktion...

Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

1. Pfeilfunktion 1. Nutzen Sie die Tatsache, dass...