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

So verwenden Sie die Clipboard-API in JS

Inhaltsverzeichnis 1. Document.execCommand()-Meth...

Implementierung des gemeinsamen Grid-Layouts

Keine Lücken auf beiden Seiten, Lücken zwischen j...

Native JS implementiert einen sehr gut aussehenden Zähler

Heute zeige ich Ihnen einen gut aussehenden Zähle...

Natives JS zur Implementierung der Paging-Klicksteuerung

Dies ist eine Interviewfrage, die die Verwendung ...

Zusammenfassung der Vue Watch-Überwachungsmethoden

Inhaltsverzeichnis 1. Die Rolle der Uhr in Vue is...

Warum funktioniert Ihre Größe: 100 % nicht?

Warum funktioniert Ihre Größe: 100 % nicht? Diese...

Gogs+Jenkins+Docker automatisierte Bereitstellung von .NetCore-Schritten

Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...