8 Stimmen

Wie leitet man in web.xml eine URL auf jsp um?

(Sollte ein leichtes sein.)

Wie kann ich alle Urls des Musters yada*.js in ein spezifisches jsp umleiten.
wird dieser Zusatz zu meiner web.xml funktionieren:

<servlet-mapping>
        <servlet-name>MySpecific.jsp</servlet-name>
        <url-pattern>yada*.js</url-pattern>
</servlet-mapping>

oder muss ich vielleicht javax.servlet.filter für diesen Zweck verwenden?

13voto

BalusC Punkte 1034465

Ich lege diese Dateien in einem Ordner namens /yada und verwenden dann eine url-pattern de /yada/* .

Wenn Sie das nicht tun wollen, ist die manuelle Bestimmung in einem Filter tatsächlich der einzige Ausweg.


Update Wie aus Ihrer Aktualisierung hervorgeht, haben Sie noch eine zweite Frage, die aus Ihrer ersten Frage nicht direkt ersichtlich war: "Wie deklariert man eine JSP-Datei als Servlet?" . Die Antwort lautet: Verwenden Sie <jsp-file> anstelle von <servlet-class> .

<servlet>
    <servlet-name>foo.jsp</servlet-name>
    <jsp-file>/foo.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>foo.jsp</servlet-name>
    <url-pattern>/foo/*</url-pattern>
</servlet-mapping>

Wie in den Kommentaren erwähnt, ist dies jedoch nicht die beste Praxis. Dies riecht nach rohem Java-Code in einer JSP-Datei, die Sie vermeiden in vollem Umfang.

0 Stimmen

Aber kann servlet-name-Attribut direkt auf eine JSP-Datei und nicht ein Servlet?

0 Stimmen

Oh, ich dachte, Sie haben bereits eine <servlet><jsp-file> dafür. Nein, das können Sie nicht allein tun. Verwenden Sie <jsp-file> anstelle von <servlet-class> en <servlet> und es wird funktionieren. Es ist jedoch nicht der empfohlene Weg. JSP ist das falsche Werkzeug für diese Aufgabe. Roher Java-Code in JSP sollte sein vermieden in vollem Umfang.

0 Stimmen

@helios: Diejenigen, die diese Art von Fragen stellen, tun das oft :)

1voto

helios Punkte 13224

Je nach Server sind die Möglichkeiten, die Sie in url-pattern eingeben können, sehr begrenzt.

Zwei sind gültig:

  • einen absoluten Pfad (keine Wildcards)
  • *.ext

Diese Spezifikation stimmt also nicht überein. Ich würde tatsächlich einen Filter verwenden.

PS: Vergessen Sie nicht, <%page sourceEncoding=... contentType=... %> in der generierenden JSP anzugeben :). Und content-type sollte charset=xxxxx enthalten

0 Stimmen

Ok, aber wie kann ich von einem Filter zu JSP weiterleiten. Muss ich "chain.doFilter()" nach dem Weiterleitungsbefehl oder vorher aufrufen? Und muss ich es aufrufen, wenn das Muster gefunden wurde oder nur, wenn das Muster nicht gefunden wurde?

0 Stimmen

Ich setze dieses Thema fort in stackoverflow.com/questions/3415240/ da ich derzeit nicht mehr als einen Kommentar in diesem Thread schreiben kann und das Problem noch nicht gelöst ist

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X