Servlet Mapping

Encera

Aktives Mitglied
Hallo zusammen,
ich habe gerade angefangen mich mit WebAnwendungen in Java zu beschäftigen. Leider sind mir trotz langen googelns ein paar Begriffe noch unklar und zwar beispielsweise das "Mapping". ich habe noch nicht genau verstanden worum es sich dabei handelt bzw. was "Mapping/ Servlet Mapping" genau macht.
Hiermal die Startklasse meines Tomcats:
Java:
ublic static void main(String[] args) {
        try {
            Tomcat tomcat = new Tomcat();
            String webappDirectory = "C:\\Users\\49160\\eclipse-workspace\\BCAH1\\src\\main\\webapp";
            tomcat.setPort(8080);
            Context context = tomcat.addWebapp("", webappDirectory);
            Tomcat.addServlet(context, "blockchain", new ServletContainer(new Application()));
         ----->>>   context.addServletMappingDecoded("/blockchain/api/*", "blockchain");
            tomcat.start();
            tomcat.getServer().await();
        } catch (Exception e) {
            e.printStackTrace();
        }
Villeicht kann mir das jemand mit einfachen Worten erklären, dafür wäre ich sehr dankbar :)
 

Oneixee5

Top Contributor
Willst du den Tomcat aus deinem Programm heraus starten? Der Tomcat ist ja schon ein eigenständiges Programm.
Code:
(4) Start Up Tomcat

(4.1) Tomcat can be started by executing one of the following commands:

  On Windows:

      %CATALINA_HOME%\bin\startup.bat
Normalerweise würde man den laufenden Tomcat in seine IDE integrieren und diese übernimmt dann das Starten und Stoppen. In der IDE erzeugt man eine Webanwendung, welche nach Fertigstellung als WAR-File exportiert und in die produktive Tomcat Instanz eingestellt wird. Das Servlet Mapping ist dann bestenfalls eine Annotation für den Pfad des Servlets im Client/Browser.
Etwas anders verhält es sich, wenn du eine Webanwendung mit SpringBoot erstellen willst, dort wäre dann z.B. ein Tomcat integriert. Aber man würde da ganz anders herangehen.
Benötigst du einfach nur einen eingebetten Server für kleine Aufgaben, kannst du dass ohne viel Overhead (Tomcat) mit dem neuen module jdk.httpserver im JDK 19 lösen.
 

Encera

Aktives Mitglied
Willst du den Tomcat aus deinem Programm heraus starten? Der Tomcat ist ja schon ein eigenständiges Programm.
Code:
(4) Start Up Tomcat

(4.1) Tomcat can be started by executing one of the following commands:

  On Windows:

      %CATALINA_HOME%\bin\startup.bat
Normalerweise würde man den laufenden Tomcat in seine IDE integrieren und diese übernimmt dann das Starten und Stoppen. In der IDE erzeugt man eine Webanwendung, welche nach Fertigstellung als WAR-File exportiert und in die produktive Tomcat Instanz eingestellt wird. Das Servlet Mapping ist dann bestenfalls eine Annotation für den Pfad des Servlets im Client/Browser.
Etwas anders verhält es sich, wenn du eine Webanwendung mit SpringBoot erstellen willst, dort wäre dann z.B. ein Tomcat integriert. Aber man würde da ganz anders herangehen.
Benötigst du einfach nur einen eingebetten Server für kleine Aufgaben, kannst du dass ohne viel Overhead (Tomcat) mit dem neuen module jdk.httpserver im JDK 19 lösen.
Hi, ja der Tomcat soll aus dem Programm heraus gestartet werden und ein kleines WebInterface laden
 

Encera

Aktives Mitglied
Willst du den Tomcat aus deinem Programm heraus starten? Der Tomcat ist ja schon ein eigenständiges Programm.
Code:
(4) Start Up Tomcat

(4.1) Tomcat can be started by executing one of the following commands:

  On Windows:

      %CATALINA_HOME%\bin\startup.bat
Normalerweise würde man den laufenden Tomcat in seine IDE integrieren und diese übernimmt dann das Starten und Stoppen. In der IDE erzeugt man eine Webanwendung, welche nach Fertigstellung als WAR-File exportiert und in die produktive Tomcat Instanz eingestellt wird. Das Servlet Mapping ist dann bestenfalls eine Annotation für den Pfad des Servlets im Client/Browser.
Etwas anders verhält es sich, wenn du eine Webanwendung mit SpringBoot erstellen willst, dort wäre dann z.B. ein Tomcat integriert. Aber man würde da ganz anders herangehen.
Benötigst du einfach nur einen eingebetten Server für kleine Aufgaben, kannst du dass ohne viel Overhead (Tomcat) mit dem neuen module jdk.httpserver im JDK 19 lösen.
Hab mir deine Antwort nochmals durchgelesen und glaub jetzt isses mir klar. Mapping bedeutet im Endeffekt quasi nur das ich den Pfad Konfiguriere unter welchem mein Servlet zu finde ist, richtig?
 

stg

Top Contributor
Fast, aber für den Anfang richtig genug ;)

Ein Servlet-Mapping, mappt ein URL Pattern auf einen (logischen) Servlet-Namen.

Es gibt also nicht nur DEN Pfad, sondern immer eine ganze Gruppe (die natürlich auch mal nur einen einzigen Pfad umfassen kann). Früher hat man z.B. in JSF Anwendungen häufig gesehen, dass alle Aufrufe auf Pfade, die mit *.xhtml enden, an das FacesServlet weitergereicht werden.
Du kannst nun z.B. aber auch mehrere Mappings für die selbe Servlet-Instanz haben und/oder verschiedenene Instanzen deines Servlets unter unterschiedlichen logischen Namen registrieren.
Die Frage unter welchem Pfad dein Servlet zu finden ist, ist also streng genommen "von der falschen Seite aus betrachtet".
 

Encera

Aktives Mitglied
Fast, aber für den Anfang richtig genug ;)

Ein Servlet-Mapping, mappt ein URL Pattern auf einen (logischen) Servlet-Namen.

Es gibt also nicht nur DEN Pfad, sondern immer eine ganze Gruppe (die natürlich auch mal nur einen einzigen Pfad umfassen kann). Früher hat man z.B. in JSF Anwendungen häufig gesehen, dass alle Aufrufe auf Pfade, die mit *.xhtml enden, an das FacesServlet weitergereicht werden.
Du kannst nun z.B. aber auch mehrere Mappings für die selbe Servlet-Instanz haben und/oder verschiedenene Instanzen deines Servlets unter unterschiedlichen logischen Namen registrieren.
Die Frage unter welchem Pfad dein Servlet zu finden ist, ist also streng genommen "von der falschen Seite aus betrachtet".
Ahh ich glaube ich verstehe was du meinst, dankedir! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Test Servlet funktioniert nicht Netzwerkprogrammierung 11
D Response in Java Servlet erzeugen Netzwerkprogrammierung 0
C Servlet erstellen klappt nicht Netzwerkprogrammierung 3
S HTTP Servlet als Instanzen im Programm starten Netzwerkprogrammierung 3
H Reponse vom Servlet leer Netzwerkprogrammierung 16
H Servlet Umlaute Netzwerkprogrammierung 20
R Socket SSL-Connect in Servlet - keystore wird nicht gefunden Netzwerkprogrammierung 2
F Kann Klasse nicht zu Servlet casten Netzwerkprogrammierung 5
S send riesige "Query" to servlet Netzwerkprogrammierung 7
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
N Servlet Response fehlerhaft Netzwerkprogrammierung 14
E RMI - Servlet Netzwerkprogrammierung 4
D Apache Mina und GWT Servlet Netzwerkprogrammierung 4
B Pdf Stream von Servlet mit itext Netzwerkprogrammierung 12
M Servlet als Login Netzwerkprogrammierung 20
B HTTP PDF Servlet download vom Server zum Client Netzwerkprogrammierung 3
B HTML meets Servlet Netzwerkprogrammierung 6
J ObjectOutputStream legt Servlet lahm Netzwerkprogrammierung 7
H Objekt von JSP an Servlet übergeben Netzwerkprogrammierung 4
S Bild-Datei von Servlet an Browser senden Netzwerkprogrammierung 8
S Servlet InputStream leer?! Netzwerkprogrammierung 14
H kleines Servlet Problem Netzwerkprogrammierung 2
N Servlet-RMI Kommunikation Netzwerkprogrammierung 8
D Verbindung über ein Servlet zu einem Server Netzwerkprogrammierung 4
Paule Connection Applet Servlet ohne Socket bzw RMI Netzwerkprogrammierung 2
R Problem mit Servlet ansprechen Netzwerkprogrammierung 7
B Servlet URL aufruf Netzwerkprogrammierung 4
R Servlet Komunikations Problem Netzwerkprogrammierung 4
D Einfache Applet-Servlet-Kommunikation Netzwerkprogrammierung 5
A JSP->Servlet->Programm (Ausführung) -> Servlet -&gt Netzwerkprogrammierung 2
M Servlet - Applet Kommunikation Netzwerkprogrammierung 3
R Java Applikation als Client ,Servlet als Server: Problem? Netzwerkprogrammierung 3
Z dateidownload vom servlet aus Netzwerkprogrammierung 4
T Servlet-Programmierung & Templates Netzwerkprogrammierung 4
T Einfacher Servlet-Server Netzwerkprogrammierung 8
A RMI Servlet Client Netzwerkprogrammierung 6
S object via post auf servlet send und weiter bearbeiten Netzwerkprogrammierung 11
K Applet - Servlet Kommunikation ohne Sockets Netzwerkprogrammierung 5
R applet servlet kommunikation Netzwerkprogrammierung 2
I Servlet ParameterChaos Netzwerkprogrammierung 2
C Applet <> Servlet Netzwerkprogrammierung 4
K RMI Kommunication zw. Servlet und EJB Netzwerkprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben