# Variablen von Bean über Servlet setzen



## traudel&irmgard (1. Okt 2004)

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

```
/** 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!



```
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; 
} 


}
```


----------



## foobar (3. Okt 2004)

Du mußt im Servlet eine Bean erzeugen und diese dann der JSP zur Verfügung stellen:
Servlet:

```
beantest bean = new beantest();
bean.settests("one");
req.getSesssion()..setAttribute("bean", b);
```

JSP:

```
<jsp:useBean id="bean" scope="session" class="mybeans.beantest"/>
<%= bean.gettests() %>
```


----------



## traudel&irmgard (4. Okt 2004)

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.


----------



## foobar (4. Okt 2004)

> 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:

```
beantest bean = new beantest();
bean.settests("one");
req.setAttribute("bean", b);
```


```
<jsp:useBean id="bean" scope="request" class="mybeans.beantest"/>
<%= bean.gettests() %>
```


----------



## traudel&irmgard (5. Okt 2004)

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!


----------



## foobar (5. Okt 2004)

Dein Programm sollte generell eine Meldung ausgeben, falls die Session abgelaufen ist. Ansonsten bekommst du zu einem späteren Zeitpunkt Probleme.


----------

