Java Server Pages und Variablen
Wille
- java
Hallo Leute ...
... ich bin noch ein wenig blau-äugig, was dieses Thema angeht, daher folgende Frage : ich benötige auf meiner Website (Client) Daten aus einer Datenbank (auf Server). Aus diesem Grund spreche ich ein Servlet (Java, auf Server) an und lasse mir die Anfrageergebnisse als ganze HTML-Seite (an Client) zurückschicken. Allerdings ist dies furchtbar unpraktikabel, wenn ich beispielsweise nur eine Eingabe mit einem Datenbankattribut vergleichen will.
Jetzt bin ich über die Möglichkeit gestolpert, Java-Code direkt in die HTML-Seite einzubinden (JSP). Tolle Sache. Dann könnte ich ja in meinem Fall das Ergebnis der DB-Abfrage (von Server) einfach an eine Variable im JSP-Abschnitt der HTML-Seite (Client) schicken und diese dann auf der Seite selbst weiter auswerten. ABER : wie spreche ich diese clientseitige Variable vom Server aus an? Geht das mit meinem Servlet? Oder kann ich mit diesem Servlet sogar JavaScript-Variablen verändern?
Besten Dank für Eure Hilfe ...
ciao, Wille
Hi,
einfach an eine Variable im JSP-Abschnitt der HTML-Seite (Client) schicken
[...]
wie spreche ich diese clientseitige Variable vom Server aus an?
Du weißt doch, wofür JSP steht (siehe Titel). Wie kommst Du also darauf, daß der JSP-Abschnitt bzw. eine JSP-Variable etwas mit dem Client zu tun haben könnte?
cu,
Andreas
Deshalb meine "Hilfe, ich betrete Neuland" - Einleitung. Offenbar heißt es nicht JSP ... ok. Aber was ich meinte, habe ich ja beschrieben. Wie nennt man den Spaß alternativ, wenn man Java-Code direkt in die HTML-Seite integriert?
Hi,
Offenbar heißt es nicht JSP ... ok. Aber was ich meinte, habe ich ja beschrieben. Wie nennt man den Spaß alternativ, wenn man Java-Code direkt in die HTML-Seite integriert?
Es gibt zwei Methoden, Java in einer Seite zu benutzen - zum einen JSP, zum anderen Applets (aber da ist der Code nicht direkt im Dokument).
cu,
Andreas
Gut, dann ist das ja geklärt.
Vielleicht reden wir ja aneinander vorbei : ich habe ein Website, die jeder Kasper aufrufen kann und die letztendlich nichts anderes tut, als Daten aus einer Datenbank anzuzeigen. Diese Datenbank liegt auf einem Server. Um deutlich zu machen, daß diese Website physisch nix mit der DB zu tun hat, nenne ich sie "Client". Dieser "Client" könnte - rein hypothetisch - ja Java-Quelltext enthalten (JSP, wie wir geklärt haben). Außerdem gibt es auf dem Server noch ein Servlet, das die benötigen Daten aus der DB in HTML verpackt und an den "Client" zurückschickt. Allerdings ist das teilweise wie mit Kanonen auf Spatzen zu schießen. Wenn ich etwa eine Benutzereingabe mit einem DB-Wert vergleichen möchte, reicht mir ein simples "OK" vom Server. Und das könnte der Server ja (falls das geht, deshalb mein Posting) in eine Variable im JSP-Abschnitt des "Clients" schicken. Wie aber geht das vom Server aus? Kann ich dafür mein Servlet nutzen? Wenn nein, was muß ich ändern?
Könnte man vielleicht sogar JavaScript-Variablen des "Clients" ansprechen? Das würde die ganze JSP-Geschichte umgehen ...
Mucchos Dankos, Wille
Dieser "Client" könnte - rein hypothetisch - ja Java-Quelltext enthalten (JSP, wie wir geklärt haben).
Nein, kann er nicht in deinem Sinne, da der Code _serverseitig_ ausgeführt wird und nur die resultierende HTML Seite an den Client geschickt wird.
Wenn ich etwa eine Benutzereingabe mit einem DB-Wert vergleichen möchte, reicht mir ein simples "OK" vom Server.
Du willst also aktiv clientseitig in der Seite etwas machen. Das geht nun mal mit keiner serverseitigen Sprache wie JSP, PHP, ASP, ... Dafür bieten Browser üblicherweise nur JavaScript (google mal nach XMLHttpRequest) oder Plugins (Applets, böses ActiveX, ...) an.
hallo Wille,
Offenbar heißt es nicht JSP ...
Was heißt jetzt nicht JSP?
was ich meinte, habe ich ja beschrieben.
Einbißchen ungelenk, aber wahrscheinlich zutreffend, hast du benannt, daß du in eine Webseite JAVA-Code einbauen möchtest, der unter anderem Variablen verarbeitet. Genau das ist JSP.
Wie nennt man den Spaß alternativ, wenn man Java-Code direkt in die HTML-Seite integriert?
Es gibt zwei Wege, einen Webserver dazu zu bewegen, daß er irgendwas mit JAVA zu tun bekommt: einmal kann er Applets ausliefern (dann muß der Server selbst kein JAVA verstehen, aber der Client muß was damit anfangen können), oder er wird veranlaßt, Servlets oder eben JSP zu "verarbeiten" - dann muß er selbst JAVA verstehen, während es dem Client wurscht sein kann, wie der Server dazu kommt, ihm irgendwelches HTML auszuliefern. Es gibt in Zusammenhang mit JAVA keine "clientseitigen Variablen". Die Entscheidung, was an die Stelle einer Variablen in den HTML-Code gepackt wird, trifft der Server.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
ganz idealistisch hatte ich mir vorgestellt, daß man im JSP-Bereich der Website eine Variable oder einen Platzhalter postieren kann, die/den das Servlet oder ein weiteres Java-Programm verändern kann. Sowas gibt es nicht? Ist aber schwach ... ;)
Ich möchte halt vermeiden, eine ganze HTML-Seite zu schicken, wenn ich nur einen einzigen Wert brauche.
Genauer möchte ich dies für ein Login verwenden. Allerdings ist die Seite nach dem Login ziemlich groß (Arebeitsoberfläche), sodaß es für den jeweiligen Nutzer (der diese Oberfläche regelmäßig nutzt) ziemlich nervig ist, jedesmal die ganze Seite neu vom Server laden zu müssen (z.B. über ein Servlet). Könnte ich statt dessen vom Server ein einfaches 'OK' bekommen, könnte man die folgende Seite 'manuell' laden, was deutlich schneller wäre, wenn sie sich erst einmal im Cache des Nutzers befindet.
Sowas muß doch irgendwie machbar sein!?
Ciao, Wille