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

CentOS 7.x-Bereitstellung von Master- und Slave-DNS-Servern

1. Vorbereitung Beispiel: Zwei Maschinen: 192.168...

Tkinter verwendet JS-Canvas, um Farbverlaufsfarben zu erzielen

Inhaltsverzeichnis 1. Verwenden Sie RGB zur Darst...

Detailliertes Tutorial zur schnellen Installation von Zookeeper in Docker

Docker: Zookeeper schnell installieren Ich habe Z...

Grundlegende Syntax und Funktionsweise der MySQL-Datenbank

Grundlegende Syntax der MySQL-Datenbank DDL-Opera...

Lösung für das Problem „VMware-virtuelle Maschine ohne Netzwerk“

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

Webdatenspeicherung: Cookie, UserData, SessionStorage, WebSqlDatabase

Plätzchen Dies ist eine Standardmethode zum Speic...

Eine kurze Diskussion über die Magie von parseInt() in JavaScript

Ursache Der Grund für das Schreiben dieses Blogs ...

JavaScript-Farbbetrachter

In diesem Artikelbeispiel wird der spezifische Ja...

So ändern Sie das ursprüngliche Passwort von MySQL auf dem MAC

Problembeschreibung: Ich habe einen Mac gekauft u...

Eine kurze Diskussion über die häufig verwendeten APIs der VUE uni-app

Inhaltsverzeichnis 1. Routing und Seitensprung 2....

Eine kurze Diskussion über die VUE Uni-App-Entwicklungsumgebung

Inhaltsverzeichnis 1. Über die visuelle Schnittst...

Konfigurieren von MySQL und Squel Pro auf dem Mac

Als Reaktion auf die Popularität von nodejs haben...

Eine Zusammenfassung der Gründe, warum MySQL keinen Datumsfeldindex verwendet

Inhaltsverzeichnis Hintergrund erkunden Zusammenf...