Die Aufgabe im Buch, welches ich gerade lese, lautet:
“Leiten Sie alle Aufrufe eines dritten zu erstellenden Servlets an eine der JSPs aus den vorangegangenen Kapiteln weiter.”
Ich habe eine neue JSP (mainpage.jsp) angelegt:
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Test
</body>
</html>```
Und ein Servlet erstellt, welche das aktuelle Datum anzeigen sollte:
```package de.akdabas.jli.j2ee.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class Date extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(getDate());
RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/mainpage.jsp");
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private String getDate(){
Date date = new Date();
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat();
return formatter.format(date);
}
}```
Weiterleitung auf die JSP funktioniert, jedoch meine Frage ist, wie zeige ich in der JSP die Methode getDate() an, welche ich in dem Servlet deklariert habe?
Zweite Frage: wofür brauche ich [U]hier[/U] die Methode doPost() ?
Dritte Frage: warum muss ich die init() Methode mit dem Parameter config aufrufen?
Vierte Frage: das was ich da gebastelt habe, ist bestimmt falsch. Wie muss das richtig sein?
Fünfte: Die Methode getDate() funktioniert nicht, warum bzw. wie muss das richtig sein? Ich will aktuelles Datum auf dem Bildschirm ausgeben.
Das Buch ist extrem theoretisch, der Autor zeigt auf ca. 50 Seiten Text nur 1-2 funktionierende Beispiele und die sind meistens sehr komplex... [U]Da ich das Buch gekauft und auch bereits ca. 150 Seiten gelesen habe, werde ich das Buch zu Ende lesen...[/U]
Danke
-
garnicht du vermischst da gerade 2 Sachen Servlets werden nicht auf JSPs angezeigt, auf JSPs werden nur Beans verwendet. Eine JSP wird in ein Servlet umgewandelt
-
rufst du …/test.jsp?var=val ist das ein GET Aufruf aber zb bei Formularen hast du POST Aufrufe, die würden in der doPost Methode landen
-
die musst du nicht aufrufen das kannst du auch rauslöschen, wenn dann soll man glaube auch die init() überschreiben, diese würde aufgerufen werden wenn dein Servlet erzeugt wurde
-
rein vom Code passt es würd ich sagen, da würde jetzt das Datum ausgegeben werden
-
mach einfach date.toString(); das reicht für deinen Fall aus
Ich kann das Buch Head First - JSP & Servlets von OReily empfehlen das ist wirklich super
Hi 
meinst du so?
Date date = new Date();
return date.toString();
}```
Dann kriege ich das, wenn ich das Servlet ausführe: de.akdabas.jli.j2ee.servlets.Date@14c194d
Wie versteht du dann die Aufgabe im Buch? Was und wie soll ich machen?
Was das Buch angeht, welches du mir empfiehlst - wenn ich das Buch mir kaufe, wirst du mein Dolmetscher sein? :D
Du musst aufpassen, nicht immer liefert ein toString() die Repräsentation des Objektes als String. Manchmal (wie anscheinend hier), wird auch einfach die Objekt ID zurückgegeben.
Folgendes Beispiel funktioniert:
{
String datum = null;
Date heute = new Date();
DateFormat formatierung = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.GERMANY);
datum = formatierung.format(heute);
return datum;
}```
Jetzt noch Fragen?
Edit: komisch, bei mir liefert dein date.toString aber wirklich ein Datum zurück. Benutzt du auch wirklich java.util.Date?
wenn toString() von Object überschrieben wurde liefert es was brauchbares zuück (wenn der Entwickler mitgedacht hat) sonst nur Hashwert mit Klassenname
Hi und danke für die Antworten.
Es hat nicht geklappt, weil ich auch eine Klasse Date definiert habe. Deshalb muss man an der Stelle java.util.Date immer schreiben oder eigene Klasse umbenennen.
Was Weiterleitung angeht, habe ich anscheinend alles richtig gemacht. Es ist nicht möglich, dass das Servlet etwas in die JSP reinschreibt oder? Also Weiterleitung funktioniert.
Danke wie immer 
nein nicht ohne ne dreckige Frickelei 
Hehe.
sucht gerade die Option, um seine Frage als „erledigt“ zu markieren 
ich habs wieder aktiviert 
Hmm, aber jetzt kann man das nicht mehr als “ungelöst” markieren :).
Ich weiß :p. Also hop hop, bis morgen will ich diese Funktion zur Verfügung haben.
(und keine Ausreden, hehe)