Variablen von Bean über Servlet setzen

  • Themenstarter Themenstarter traudel&irmgard
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

traudel&irmgard

Gast
hi leude,
ich hab nen prob.
aufbau: web-inf->classes darunter package: "myservlets" und "mybeans"

ich habe ein servlet ("theservlet" in "myservlets") das den request einer html empfäng und die werte in variablen/arrays ablegt
Code:
/** variables of the servlet "theservlet" at "myservlets" 
String[] testst = new String{"one","two"}; 
String tests = "month"; 
int[] numbers = new int[5]; 
int test = 4; 
*/

dann hab ich eine bean ("beantest" in "mybeans"), welche einen DB zugriff machen soll und den resultset an eine jsp übergeben soll, damit ich mit der jsp den inhalt ausgeben kann...

mein problem ist erstmal, dass ich nach etlichem hin und herprobieren einfach nicht die variablen (siehe oben) an die bean übergeben kann
ich währ unheimlich dankbar, wenn mir da jemand weiterhelfen kann!
konnt bis jetzt immer nur per forward den response und request weitergeben, will aber wie gesagt die werte der variablen in der bean setzen!


Code:
package mybeans; 

import java.beans.*; 
import java.io.Serializable; 

public class beantest extends Object implements Serializable { 

int test ; 
int[] numbers = new int[5]; 
String tests ; 
String[] testst = new String[]{"eins", "zwei", "drei"}; 

public void settest(int test){ 
this.test = test; 
} 
public int gettest(){ 
return test; 
} 
public void setnumbers(int[] numbers){ 
this.numbers = numbers; 
} 
public int[] getnumbers(){ 
return numbers; 
} 
public void settests(String tests){ 
this.tests = tests; 
} 
public String gettests(){ 
return tests; 
} 
public void settestst(String[] testst){ 
this.testst = testst; 
} 
public String[] gettestst(){ 
return testst; 
} 


}
 
Du mußt im Servlet eine Bean erzeugen und diese dann der JSP zur Verfügung stellen:
Servlet:
Code:
beantest bean = new beantest();
bean.settests("one");
req.getSesssion()..setAttribute("bean", b);

JSP:
Code:
<jsp:useBean id="bean" scope="session" class="mybeans.beantest"/>
<%= bean.gettests() %>
 
dank dir erstmal!
klappt erstmal ohne probleme 🙂

aber mal noch ne frage:
wenn ich jetzt nen session objekt erstelle und über das die ganzen werte in der bean ändere und über die jsp ausgebe, klappt auch wenn ich die eingabewerte ändere.
kann es da irgendwelche probleme geben, wenn ich die session nicht schließe?
wüsste jetzt nämlich auch nicht wann ich diese schließen sollte.
 
kann es da irgendwelche probleme geben, wenn ich die session nicht schließe?
Was meinst du damit? Falls der Browser geschlossen wird und damit die Session ungültig wird, gibt es in dieser Session auch keinen Zugriff mehr auf die JSP.
Alternativ zur Session, kannst du die Werte auch über den Request mitgeben:
Code:
beantest bean = new beantest();
bean.settests("one");
req.setAttribute("bean", b);
Code:
<jsp:useBean id="bean" scope="request" class="mybeans.beantest"/>
<%= bean.gettests() %>
 
war mir jetzt nicht sicher wann die session "automatisch"geschlossen wird.
wenn ich z.B. den browser nicht schließe, nicht, dass dann irgendwann "falsche"/vorherige parameter oder der gleichen übergeben werden...
aber dank dir!
 
Dein Programm sollte generell eine Meldung ausgeben, falls die Session abgelaufen ist. Ansonsten bekommst du zu einem späteren Zeitpunkt Probleme.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben