Frage

Eine bestehende Java-Website ist so konzipiert, unter „/“ auf tomcat und es gibt viele spezifische Hinweise auf feste absolute Pfade wie „/ dir / dir / Seite“.

laufen

Möchten Sie diese auf Java EE Verpackung migrieren, wo die Website unter einer kontext root ausführen müssen z.B. "/ Dir / dir / Seite" wird "/ my-context-root / dir / dir / Seite"

Nun kann der Kontext-root leicht mit ServletRequest.getContextPath (), aber das bedeutet noch viele Code-Änderungen eine große Code-Basis zu migrieren. Die meisten dieser Referenzen sind in wörtlichen HTML.

Ich habe mit der Verwendung von Servlet-Filter experimentieren Schreibungen auf dem oubound HTML zu tun, und das scheint gut zu funktionieren. Aber es einführt einigen Aufwand, und ich würde es als eine dauerhafte Lösung nicht sehen. (Siehe EnforceContextRootFilter-1.0-src.zip für den Servlet-Filter-Ansatz).

Gibt es bessere Ansätze zur Lösung dieses Problems? Alles, was offensichtlich fehle ich? Alle Kommentare zu schätzen!

War es hilfreich?

Lösung

Überprüfen Sie ein verwandtes Frage aus

Sehen Sie sich auch URLRewriteFilter

Eine andere Sache (ich immer die Bearbeitung dieses verflixte post). Wenn Sie JSP verwenden (im Vergleich zu statischen HTML oder etwas anderes) Sie könnten auch eine Tag-Datei erstellen, um die gemeinsamen HTML-Tags mit Links (insbesondere a, img, Form) zu ersetzen. So Link können geworden link . Dann kann der Tag für die Übersetzung tun.

Diese Änderung kann leicht "en masse" getan werden, so etwas wie sed verwendet wird.

sed -e 's/<a/<t:a/g' -e 's/<\/a>/<\/t:a>/g' old/x.jsp > new/x.jsp

Formular Aktionen kann ein bisschen schwieriger als sed, aber Sie bekommen die Idee.

Andere Tipps

die Apache-Welt verwendet Redirects (mod_rewrite) das gleiche zu tun.

Die Servlets Welt gestartet Filter mit

Der Rubin Welt (oder der RoR) macht mehr aus dem gleichen Stoff und sie nennen es das Routing.

Es gibt also kein Weg daran vorbei (Es sei denn, Sie klug regex durch out nutzen möchten - das versucht wurde, und es funktioniert gut)

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top