Servlet auf sich selbst verweisen lassen (Anfängerfrage)

wyldstyle

Aktives Mitglied
Hallo ihr da draußen, im Rahmen der Uni versuche ich mich in Servlets einzuarbeiten und bin da auf einen Logikfehler gekommen den ich mir nicht erklären kann.

Folgende Aufgabe: Es soll ein Servlet erstellt werden zum verwalten einer Datenbank.
Der erste Schritt ist hierbei eine Verweisseite die auf die einzelnen Funktionsseiten verweist und hier hänge ich bereits.

Mal als Code kurz umrissen:

Code:
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		out = response.getWriter();
		out.println("<html><body>");
		out.println("<h1>Hauptmenue</h1>");
		out.println("<hr/>");
		out.println("<ul>");
		out.println("<li>  Link zu der Funktion </li>");
		out.println("</ul>");
		out.println("</body></html>");
	}

Ich weiss einfach nicht wodrauf ich den Link verweisen lassen soll, denn die Seiten sollen halt erst vom Servlet erzeugt werden und existieren noch nicht, wodrauf also den link verweisen lassen!? Optimal wäre es wenn ich einen Link auf einen methodenaufruf um servlet verweisen könnte aber das geht nicht oder?
Wie löst man sowas bitte!?

Grüße,
wyldstyle
 
S

SlaterB

Gast
Seiten existieren generell nicht und werden auch nicht einmal erzeugt so dass sie dann 'da' sind

ein typischer Link ist /index oder so, der führt zu einem Servlet falls gemappt, dieses schreibt Output oder leitet an eine JSP weiter je nach verwendetem Framework,
ganz danach wie alles konfiguriert ist

irgendwelche laufenden Beispielanwendungen bekannt?
 

wyldstyle

Aktives Mitglied
Laufende Beispiele gibt es generell nicht, ist eine Übungsaufgabe der Uni. Ich poste dir mal die Aufgabenbeschreibung, vielleicht hab ich das auch einfach total falsch verstanden:

In der folgenden Aufgabe soll ein Servlet erstellt werden, welches uber eine JDBC - Datenbankverbindung
dynamische HTML-Seiten erzeugt, welche Daten aus einer Datenbank
enthalten.
Nennen Sie die Datei DB.java bzw DB.class und verwenden Sie kein Package,
um die Korrektur zu vereinfachen. Die bisher verwendete Musik-Datenbank von Blatt 1 soll
weiterverwendet werden. Achten Sie darauf, dass Ihre Tabelle Album folgendem Schema
entspricht: Album(Albumtitel, Interpret, Erscheinungsjahr,Bewertung). Damit ein Servlet
auf eine HSQLDB-Datenbank zugreifen kann, muss der JDBC-Treiber fur den Tomcat-
Webserver zugreifbar sein.
Kopieren Sie dafur die Datei hsqldb.jar in den Ordner %CATALINA HOME%ncommonnlib.
Die Datei nden Sie im lib-Ordner von HSQLDB.
Das Servlet soll HTML Seiten generieren, die folgenden Funktionsumfang abdecken:

a) Anzeigen eines Hauptmenus: Das Hauptmenu wird angezeigt und bietet Links zum
Anzeigen aller Alben und zum Hinzufugen und Entfernen eines Albums.


b) Alle Alben anzeigen: Es werden alle Alben, die in der Datenbank vorliegen, angezeigt.
Die Anzeige soll mit einer Tabelle optisch formatiert werden. Es gibt einen
Link, um zum Hauptmenu zuruck zu gelangen.


Daraus leite ich jetzt ab:
bei aufruf des servlets wird eine seite erzeugt die 3 links anbietet: "anzeigen aller alben","hinzufügen eines albums", "entfernen eines albums". Durch klick kommt man auf die enstsprechende seite. aber wodrauf sollen die links nur verweisen !? es soll halt in einem servlet realisiert werden <.<
 
S

SlaterB

Gast
Links kann wirklich völig beliebig wählen, schau dir die URL oben im Browser an
> http://www.java-forum.org/web-tier/108134-servlet-selbst-verweisen-lassen-anfaengerfrage.html
Code:
http://www.java-forum.org/web-tier/108134-servlet-selbst-verweisen-lassen-anfaengerfrage.html
es gibt nirgendwo eine Festplatte wo eine entsprechend benannte html-Datei rumliegt,
der Link wird dynamisch verarbeit, auch
Code:
http://www.java-forum.org/web-tier/108134-a.html
führt zur selben Seite, nur die Thread-Id am Anfang ist wichtig, der Rest ist schmückendes Beiwerk,
diese URL/ dieser Link wird an ein Servlet bzw. PHP-ähnliches geleitet wo die Id ausgewertet und eine Antwort-Seite dynamisch geschrieben wird

also sind Links erstmal Schall und Rauch, je nach Konfigurations-Möglichkeiten kannst du durchaus
Code:
/AnzeigeAllerAlben
/Hinzufügen
/ZeigeAlbum-Rolling-Stones
/ZeigeAlbum?id=42
und so weiter schreiben, was dir einfällt,
der Link bewirkt nichts anderes, als das dann eine entsprechende Anfrage gestellt wird,
ob der WebServer diese verarbeiten kann entscheidet sich dann wenn die Anfrage kommt

----

so viel allgemein zu Links gesagt, ob dein bestimmtes Programm das alles kann ist eine andere Frage

sehr komisch finde ich den Satz
> Nennen Sie die Datei DB.java bzw DB.class und verwenden Sie kein Package, um die Korrektur zu vereinfachen.
DB ist ein schlechter Name für ein Servlet und ohne package kann die Klasse garantiert von keinem Webserver dieser Welt genutzt werden,
das klingt mehr nach einfachen Dummy-Programm wozu meine allgemeinen Erläuterungen vielleicht nicht sehr weit helfen

nach meiner Vorstellung würde das jedenfalls z.B. so aussehen:
Java:
if ("Hauptmenue".equals(request)) {
  // erstelle Hauptmenü-Seite
} else if ("ZeigeAlleAlben".equals(request)) {
  // erstelle AlleAlben-Seite
}
usw.
 
Zuletzt bearbeitet von einem Moderator:

wyldstyle

Aktives Mitglied
Ich hab halt nur das eine Servlet was ich nutzen soll, bei Aufruf wird eine Indexseite erzeugt und beim Klick drauf halt die andern Seiten dynamisch.

So wie du das meinst, wäre die Indexseite ja quasi extern und würde mit dem servlet kommunizieren. Es ist halt so gedacht, dass das Servlet erst die Indexseite erzeugt. Und dann kommt das problem, dass ich mich selbst referenzieren muss bzw das servlet mit 2 isntanzen laufen muss dafür.

bsp:

Code:
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		System.out.println("test");
		out = response.getWriter();
		out.println("<html><body>");
		out.println("<h1>Hauptmenue</h1>");
		out.println("<hr/>");
		out.println("<ul>");
		out.println("<form action=\"DB\" method=\"POST\"><input type=\"submit\" value=\"Submit\"></form>");
		out.println("</ul>");
		out.println("</body></html>");

	}

erzeugt ne htmlseite mit nem button bei dessem druck DB (das servlet) aufgerufen werden soll. apache mag das aber absolut nicht und ich weiss nicht wie diese selbstreferenzeirung gehen soll?
 
S

SlaterB

Gast
nun, ich habe alles dazu gesagt was ich soweit sagen kann

'apache mag das aber absolut nicht' ist eine ziemlich ungenaue Fehlermeldung, aber da gibts auch tausende Einstellungen damit verschiedenste Dinge funktionieren,
ohne Einweisung/ Test-Web-Anwendung kann man dazu eigentlich gar nichts machen

---
wie gesagt kann eine Java-Klasse DB ohne package unmöglich von einem anderen Java-Programm wie z.B. Apache verwendet werden
 

jann

Mitglied
Deine Klasse DB.java:

Java:
...
out.println("<li><a href=\"http://www.deinserver.de:8080/deinVerzeichnis/DB\">Hauptmenue</a></li>");
...

Unter der Vorraussetzung, dass der Tomcat auf Port 8080 angesprochen wird und Deine DB.class im Verzeichnis "deinVerzeichnis" liegt. Der erste Aufruf dieses Servlets über den Browser sieht dann so aus:

http://www.deinserver.de:8080/deinVerzeichnis/DB

Ob Du die Portangabe brauchst hängt aller dings ganz von der Konfiguration Deines Servers ab. Ist für das Verständis aber auch unwichtig.

Das Servlet DB.class erzeugt als Rückgabewert das HTML, das den Browser veranlasst Dir die Startseite anzuzeigen, in der dann das Wort Hauptmenue als Link wiederum auf das Servlet verweist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Servlet soll sich selbst aufrufen. Web Tier 7
H Servlet lässt sich nicht deployen Web Tier 7
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R servlet-mapping führt zu 404-Fehlern Web Tier 0
B Servlet mit TomCat9 Web Tier 0
A redirect mit servlet-mapping in web.xml Web Tier 4
J Wie Mouse Event in Servlet einbinden? Web Tier 1
D JSF Servlet Mapping Web Tier 3
J Session Servlet - JavaScript Web Tier 6
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
Todesbote Servlet MVC Design Pattern Web Tier 1
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
Shams Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) Web Tier 2
H File Output Servlet Web Tier 6
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
OnDemand Servlet oder JSP Web Tier 12
H Servlet/JSP und OSGI Web Tier 2
L Servlet Datenbank Web Tier 0
D Java EE Servlet login Problem Web Tier 1
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
S Java Bean und Java Servlet Web Tier 2
D Servlet Servlet Weiterleitung static html Web Tier 5
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
J Servlet Zugriff Servlet Web Tier 11
A JSON von JavaScript an Servlet Web Tier 9
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
0 Servlet.Properties Web Tier 3
P Servlet Wo gibt es das javax.servlet.Servlet? Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
5 Bild Pfad Servlet Web Tier 2
D Datenbankzugriff im Servlet Web Tier 5
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
S Ich brauche Buchempfehlung über JSP und Servlet Web Tier 2
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
K Servlet URL Mapping Web Tier 3
S ClassPath für Servlet Web Tier 3
reibi Servlet Logging - Standard Servlet Web Tier 5
K Portlet, Servlet doGet und doPost Web Tier 4
reibi Servlet Alleinlaufendes Servlet bauen Web Tier 6
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
lukas24680 Servlet pro Request Web Tier 2
C Pageing mit JSp&Servlet Web Tier 5
D JSP JSP integriert ein Servlet... Wie? Web Tier 7
I Servlet vor Browser URL-Direktzugriff schützen Web Tier 3
N Servlet ausführen Web Tier 26
B statische Html Seite als response erhalten (Servlet) Web Tier 3
A javax/servlet/jsp/jstl/core/Config Web Tier 1
F Servlet mapping ;-) Web Tier 3
H Servlet Mapping mit JSF Web Tier 8
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
W MVC mit Bean, JSP und Servlet Web Tier 6
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
ruutaiokwu HttpServletRequest-instanz in servlet und JSP unterschiedlich? Web Tier 5
T Bild durch anderes Bild ersetzen mit Servlet Web Tier 3
E Mein erstes Servlet Web Tier 8
S Servlet automatisch aufrufen Web Tier 2
J Kommunikation zwischen Servlet und EJB Web Tier 6
C Image in Servlet Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
N API Nutzung SERVLET Web Tier 12
J Memory Leak in Servlet nach längere Laufzeit Web Tier 6
ruutaiokwu template engine gesucht ohne abhängigkeit zum servlet container Web Tier 2
G Servlet Ausgabe richtig benutzen Web Tier 4
M Servlet Ausführungsfehler Web Tier 4
D Servlet alle 6h ausführen Web Tier 5
M Servlet & JSP Organisation Web Tier 2
J seltsames Auslastungsproblem bei Servlet Web Tier 7
ruutaiokwu JSF - läuft ausserhalb des servlet-containers? Web Tier 5
R Direkten Servlet-Aufruf verhindern (JSP) Web Tier 3
K Formularweiterleitung an Servlet Web Tier 5
N Servlet: Problem mit getParameterValues Web Tier 4
J Dateiupload- Servlet Web Tier 14
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
G Kommunikation Servlet + Applikation Web Tier 4
megachucky Welche Servlet-Version benötigt GWT 2.0? Web Tier 13
X Servlet Select box Web Tier 6
S Java Servlet Content Type Web Tier 3
E Servlet zum speichern einer Datei in einer Datenbank Web Tier 3
M Servlet neuladen Web Tier 2
H Wie wurde ein Servlet aufgerufen Web Tier 2
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
H servlet fehlermeldung Web Tier 3
W JSP/Servlet Web Applikation programmierung Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4
E Servlet mit einem Link aufrufen? Web Tier 13
D Servlet FacesServlet is not available und Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10
S Laden von globalen Resourcen im Servlet Container..? Web Tier 3
T JBoss + Servlet + HTML Fileupload + Encoding Web Tier 1
2 Servlet: Pfad zu Webcontent Web Tier 6
J Servlet Sicherheit Web Tier 4
J struts2: vom value stack zum servlet Web Tier 14
D Servlet-Klassen und Templates trennen? Web Tier 18

Ähnliche Java Themen

Neue Themen


Oben