home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

URL Mapping

Zum Ansteuern eines Servlets gibt es generell zwei Möglichkeiten. Damit ist gemeint, unter welchem Namem wir im Browser ein Servlet ansprechen können um es zu öffnen. 


Als Default wird hier der Name des Servlets verwendet. Es gibt allerdings zwei Möglichkeiten dies zu ändern.

 

 

 

URL Mapping mit Annotation (Variante 1)

Die erste Möglichkeit ein URL Mapping durchzuführen, ist dies im Code des Servlets zu annotieren.

Dies geschieht nach dem Muster:

 

@WebServlet(/SoWirdMeinServletAufgerufen)

 

Ist dies implementiert, wird das Beispiel von oben nun so aufgerufen:

 

http://localhost:8080/SOTE2-2013-04-19/SoWirdMeinServletAufgerufen

 

Gegebenenfalls muss "localhost" durch die IP-Adresse des Servers ersetzt werden, auf dem das Servlet liegt.

Mapping mit dem Deployment-Deskriptor, bzw. mit der web.xml (Variante 2)

Die Datei web.xml im Verzeichnis server_root/webapps/ROOT/WEB-INF wird als Deployment-Deskriptor bezeichnet. Sie enthält Konfigurationsinformationen über die Web-Applikation, in der sie sich befindet.

Ungefähr 50 verschiedene Tags sind laut DTD für die web.xml erlaubt.

Sie steuert die 

  • Servletregistrierung
  • URL-Zuordnungen
  • Begrüßungsdateien (index.html etc.)
  • MIME-Typen
  • Sicherheitseinschränkungen auf Seitenebene

Der Aufbau einer web.xml

Alles was unter dem <web-app>-Tag steht, liefert dem Server Informationen über die Web-Applikation. Dieses Beispiel registriert das WelcomeServlet unter dem Namen "welcome". Der registrierte Name befindet sich unter dem <servlet-name>-Tag. Die zugehörige Klasse ist unter <servlet-class> zu finden. Das servlet-Tag umgibt diese beiden Tags.

Nach der Registrierung und einem Neustart des Tomcat-Servers ist das "WelcomeServlet"-Servlet unter der URL: http://localhost:8080/servlet/welcome zu finden (bzw. http://<serverip>:8080/servlet/welcome).

Durch diese Registrierung ist es dem Server möglich, sich an Dinge zu errinern welche das Servlet betreffen, und kann bestimmte URL-Muster verschiedene reagieren. So kann man zum Beispiel angeben, dass alle Requests von der Seite hello.html von einem bestimmten Servlet behandelt werden sollen.

Mit Hilfe des <servlet-mapping>-Tags kann angegeben werden welches Servlet sich um welches URL-Muster kümmert.

In dem unten genannten Beispiel wurde  das "welcome-Servlet" alle Requests von hello.html entgegennehmen und bearbeiten.

Die <welcome-file-list> gibt an welche Seite angezeigt werden soll, wenn keine spezielle Seite angegeben wurde, oder wenn ein Fehler auftritt.

Beispiel:

 

<web-app>

 

 

    <display-name>Servlet</display-name>

 

 

    <servlet>

 

 

        <servlet-name>welcome</servlet-name>

 

 

        <servlet-class>WelcomeServlet</servlet-class>

 

 

    </servlet>

 

 

    <servlet-mapping>

 

 

        <servlet-name>welcome</servlet-name>

 

 

        <url-pattern>/hello.html</url-pattern>

 

 

    </servlet-mapping>

 

 

    <welcome-file-list>

 

 

        <welcome-file>hello.html</welcome-file>

 

 

    </welcome-file-list>

 

 

</web-app>