Mit JSP eine Datenbankabfrage durch führen.

Status
Nicht offen für weitere Antworten.

xunil1987

Neues Mitglied
ich habe das problem das ich mit JSP eine Datenbank abfrage machen möchte. Ich habe auch eine Bean dafür bloss wie mache ich das das man zb bestümmte parameter mit übergeben kann?

Code:
<jsp:getproperty name="bean" property="property" /> i

aber wenn ich noch mehr informationen für die abfrage brauch:

zb ich möchte denn Vornamen von Herrn Müller aus Bremen Müllergasse 2 haben. dann muss ich die infos ja mit zum Bean schicken wie mache ich das dann?
 

bambi

Bekanntes Mitglied
also ich habe jetzt nicht ganz genau verstanden wo und wie du die DB-abfrage machen willst, aber hier mal, was ich immer mache:

jsp: parameter einlesen und als parameter weitergeben an ein servlet
servlet: parameter auslesen und methode der session bean aufrufen (parameter an methode uebergeben)
session bean: db-abfrage machen
servlet: forward an jsp und da die ausgabe anzeigen...

also was ist jetzt genau dein problem? hast du eventuell code da
 
G

Gast

Gast
@bambi, ich mache meine DB-Abfragen immer in einer Methode des Servlets (oder eine andere Klasse), die Session-Beans verwende ich nur um die Session-Daten zu speichern.
Gibt es Gründe dafür warum du die DB-Abfrage in der Session-Bean machst?
 

bambi

Bekanntes Mitglied
Das ist doch der ganze Sinn von Session Beans, richtig!?!
Das Entity ist eben die Repraesentation der DB-Daten und die Session Bean enthaelt die ganze Geschaeftslogik. Auf die Session Bean kann dann mit anderen Klassen wieder zugegriffen werden - um es einfach zu trennen.
 

ak

Bekanntes Mitglied
Session-Beans speichern Session-Daten und sollten meiner bescheidenen Meinung nach keine DB-Zugriffe vollziehen. Ich mache das immer in den Servlets oder anderen Klassen und speichere dann die DB-Werte in den entsprechenden Session-Beans über die set-Methoden.

Gibt es da Einwände?
 

bronks

Top Contributor
ak hat gesagt.:
Session-Beans speichern Session-Daten und sollten meiner bescheidenen Meinung nach keine DB-Zugriffe vollziehen.

Einmal hier: http://my.execpc.com/~gopalan/java/ejb/session.html
Und zum anderen: Die SampleApp die bei Struts dabei ist, weil das dort ähnlich gemacht wird.


ak hat gesagt.:
Ich mache das immer in den Servlets oder anderen Klassen und speichere dann die DB-Werte in den entsprechenden Session-Beans über die set-Methoden.

Gibt es da Einwände?

Zum hobbymäßigen herumwurschteln daheim ist es schon ok. 8) Als ernstzunehmender Amateur oder im Profibereich sollte man sich daran orientieren: http://java.sun.com/blueprints/corej2eepatterns/Patterns/

Es gibt viele lohnende SampleApps in denen gepflegter Programmierstil gezeigt wird.




@xunil1987:
Du hast die o.g. Möglichkeit mit der JSTL, die auch zum gepflegten umgang mit JSP gehört. Bei der anderen Möglichkeit bleibt Dir nichts anderes übrig, als Dich in das Thema ordentlich einzuarbeiten und reinzusteigern, weil Du sonst immer etwas zum nachbessern und verändern haben wirst, wenn Du Dich nicht davor in einer Sackgasse verfährst.
 

ak

Bekanntes Mitglied
@bronks, mit Session-Beans sind hier einfache JavaBeans gemeint in denen mit get und set-Methoden Session-Daten gespeichert werden (keine EJB's). Siehe ersten Post, wo steht:
...
Code:
 <jsp:getproperty name="bean" property="property" />
...

Die struts-sample apps sind sehr klein und übersichtlich, sie sollen nur zeigen was geht und was nicht.

Jetzt interessiert mich aber mal ob ich da richtig liege.
Gehören DB-Zugriffe in einfache JavaBeans, wenn ich noch Servlets, JSP's und Klassen (zum Zugriff auf die DB) habe?
 

bambi

Bekanntes Mitglied
Warum sind denn jetzt session beans ploetzlich JavaBeans??? Also ich hab' mit SessionBeans auch SessionBeans (EJB) gemeint.
Hab noch nie gehoert, dass jemand zu JavaBeans SessionBeans sagt - hat ja auch ueberhaupt nix miteinander zu tun.

Und NEIN - NIE DB-Zugriffe in JavaBeans - bloss nicht!!! DB-Zugriffe gehoeren definitiv in SessionBeans (EJB) und nirgens anders hin!!!

Also normalerweise ist das ja so aufgebaut:

JSP <---> Servlet <---> SessionBeans(EJB) <---> EntityBean (EJB)

Die JavaBeans (mit Getter und Setter) werden verwendet um Daten zwischen dem JSP und dem Servlet auszutauschen.
 

ak

Bekanntes Mitglied
Gut dass wir nochmal drüber geredet haben :)

Findest du es nicht etwas übertrieben einem Anfänger wie xunil1987 zu EJB's zu raten?
Das ist so als wenn jemand Fahrrad fahren lernen möchte und du ihn dazu verdonnerst einen Führerschein für LKW's zu machen.

Viele Firmen verwenden in ihren Java-Webanwendungen keine EJB's , da dies einfach zuviel des guten ist. Und diese Anwendungen sind wahrlich nicht "klein". Es gibt sogar einen Trend weg von EJB's hin zu Pojos, laut einigen Artikeln im Javamagazin jedenfalls.

Javabeans kann man auch verwenden um Daten zwischen mehreren JSP's einer Session oder Webanwendung (scope application) auszutauschen. Eben um die Daten einer Session (Webanwendung) zu verwalten.
 

bambi

Bekanntes Mitglied
Hey, sicher gibt's noch andere Moeglichkeiten eine DB-Abfrage zu machen - bestreit ich ja auch gar nicht.

Wir waren doch aber gerade beim Thema SessionBeans (EJB), oder? Und mal ehrlich eine DB-Abfrage in 'ner JavaBean hat sich fuer micht *uahhh* ganz boese angehoert - war aber nur 'ne Frage von gleichen Namen fuer unterschiedliche Sachen...

Sicher kann man JavaBeans noch ganz anders verwenden. Ich benutze auch nicht nur Servlets um mit JSPs zu arbeiten...

Das ist ja gerade das schoene am Proggen. Es gibt 1000... verschiedene Wege was zu machen und nicht immer nur den "Einen und Einzigen"... Aber irgendwo muss man ja mal anfangen, right?
Also ich sach nur: jedem so wie er's am besten findet... :lol:
 

Bleiglanz

Gesperrter Benutzer
@ak

ACK, für lesende Zugriffe (bei denen der Transaktionslevel oft egal ist, weil einfach in einer HTML-Seite eine Tabelle angezeigt werden soll) ist der Umweg

Servlet -> SessionBean -> Query -> Liste von Value Objects -> Servlet -> JSP

totaler Nonsense. Schon das Standardbuch J2EE Patterns (von Sun) empfiehlt da den Fast Lane Reader

d.h. einfach das SQL direkt an die DB durchreichen mit JDBC und aus dem ResultSet das HTML basteln
 
G

Guest

Gast
bronks hat gesagt.:
ak hat gesagt.:
Session-Beans speichern Session-Daten und sollten meiner bescheidenen Meinung nach keine DB-Zugriffe vollziehen.

Einmal hier: http://my.execpc.com/~gopalan/java/ejb/session.html
Und zum anderen: Die SampleApp die bei Struts dabei ist, weil das dort ähnlich gemacht wird.


ak hat gesagt.:
Ich mache das immer in den Servlets oder anderen Klassen und speichere dann die DB-Werte in den entsprechenden Session-Beans über die set-Methoden.

Gibt es da Einwände?

Zum hobbymäßigen herumwurschteln daheim ist es schon ok. 8) Als ernstzunehmender Amateur oder im Profibereich sollte man sich daran orientieren: http://java.sun.com/blueprints/corej2eepatterns/Patterns/

Es gibt viele lohnende SampleApps in denen gepflegter Programmierstil gezeigt wird.




@xunil1987:
Du hast die o.g. Möglichkeit mit der JSTL, die auch zum gepflegten umgang mit JSP gehört. Bei der anderen Möglichkeit bleibt Dir nichts anderes übrig, als Dich in das Thema ordentlich einzuarbeiten und reinzusteigern, weil Du sonst immer etwas zum nachbessern und verändern haben wirst, wenn Du Dich nicht davor in einer Sackgasse verfährst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Java mail API - möchte nur eine gewisse Anzahl von Emails in die Liste holen Allgemeines EE 3
B eine vom Admin hochgeladene csv -Datei in der Datatable auch von jedem User sichtbar Allgemeines EE 0
OnDemand Programm starten, wenn eine Aufgabe erledigt Allgemeines EE 1
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
T Wie kann ich eine große Datenmenge vorhalten, damit ich seitens Frontend darauf zugreifen kann? Allgemeines EE 17
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
D JSF h:panelgrid - eine reihe mit zusätzlicher spalte Allgemeines EE 6
S Wie am besten eine Authentifzierung einbauen? Allgemeines EE 7
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
slawaweis CMS Unterbau für eine Web 2.0 Anwendung Allgemeines EE 4
M Wie erhällt eine MessageDrivenBean Nachrichten aus einer Queue ? Wer Pollt da gegen die DB? Allgemeines EE 3
MQue include einer jsp in eine andere Allgemeines EE 4
D Wann genau eine Middleware Allgemeines EE 8
2 JSTL Tags für eine Bean? Allgemeines EE 4
S Session in eine andere Anwendung übergeben Allgemeines EE 2
D Frage zum Verlassen eine JSF-Eingabefeldes Allgemeines EE 6
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
J Rechnername auf dem eine J2EE läuft Allgemeines EE 10
P Eine Frage zum Thema Applikationsaufbau Allgemeines EE 3
H Eine Datenbank - 1 Datenmodell - 2 Anwendungsumgebungen Allgemeines EE 2
E HTTP-GET// -->Eine URL aufrufen, aber nicht dahin navigie Allgemeines EE 2
H Eine kurze Verständnisfrage zum Tomcat Allgemeines EE 2
W Eine Form an einen fremden Server schicken. Allgemeines EE 3
G WebApp (mit Tomcat) Wie kann meine Klasse eine Datei laden? Allgemeines EE 7
E Eine Art Thread.sleep() in JSTL? Allgemeines EE 4
M wie sieht eine ejb-jar.xml aus ? Allgemeines EE 8
T eine web anwendung bereitstellen ? Allgemeines EE 5
N Einbindung einer Bean in eine JSP (Tomcat-Server 5.5.x) Allgemeines EE 2
G StackTrace in eine TEXTAREA bringen Allgemeines EE 4
W Woraus baut man eine Super-Business-Anwendung? Allgemeines EE 5
B Besondere Ländereinstellungen für eine TomcatApp Allgemeines EE 2
TRunKX Werteübergabe von einer *.jsp in eine *.java ohne struts Allgemeines EE 4
G Application Server! Gibt es eine grundsätzliche Architektur? Allgemeines EE 9
B EJB --- Eine Modeerscheinung? Allgemeines EE 14
Y Eine neue Seite mit Servlet öfnnen Allgemeines EE 9
A mit JavaMail eine html mail versenden? Allgemeines EE 4
D Ladezeiten optimieren durch geschicktes verschachteln Allgemeines EE 23
V "null" durch NICHTS ersetzen jsp und java beans Allgemeines EE 3
T logic:iterate durch JSTL ersetzen? Allgemeines EE 6
B JSF: Action #{myBean.myAction} durch Tag auslösen Allgemeines EE 3
B Anstossen einer Methode durch link! Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben