# Speicherung von Daten und JSP



## Math55 (17. Feb 2004)

hallo, ich versuche gerade somne art shop zu schreiben. ich habe einen artikel pro seite und man kann dann mit links bzw. rechts durch die bilder scrollen. funktioniert auch. dann möchte ich einen button bzw. link machen, mit dem man sich einen artikel merken kann. dazu linke ich auf eine andere jsp und übergebe den namen des artikels in der url. wie kann ich es aber nun anstellen, daß in dieser jsp auch meherer artikel gespeichert werden können? so wie ichs jetzt hab, speichert er nur den letzten artikel, da mein hash immer neu angelegt wird. es sollte aber eben ein hash sein, da ich als key den artikelnamen und als value die anzahl brauch, oder gibts da was besseres? hier der code der seite, die speichern soll. sicher ganz einfach, nur komm ich nicht drauf:-(



```
<%
	String name=request.getParameter("name");
	
//oder eben hash	
    List list=new ArrayList();
	
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page language="java" import="java.util.*"%>
<html>
	<head>
		<title>buy.jsp</title>
	</head>
	<body>
		name:<%=name%>
<%
	name+=name;		
		
%>
		
<%
		
%>	
	</body>
</html>
```


----------



## AlArenal (17. Feb 2004)

Stichwort:

Session Variablen


----------



## Math55 (20. Feb 2004)

hi, kannst du genauer werden? kann ich es überhaupt so machen? wie gesagt, die zweite jsp soll keiner zu gesicht bekommen, sie soll lediglich aufgerufen werden, dann speichern und wieder zurück zur aufrufenden seite...

danke


----------



## AlArenal (20. Feb 2004)

Parameterübergaeb über URL ist Pipi. Die maximale Länge der URL ist begrenzt und es ergeben sich Probleme, wegen Manipulierbarkeit. Außerdem nervt es immer alle möglichen Variablen an einen Link anzuhängen, das ist eklige fehleranfällige und nervige Tipparbeit.

Wenn du Sessions benutzt, kannste dir das Sparen und im Grunde beliebig viele Daten übergeben, ohne dass außen wer was davon mitbekommt (außer vielleicht den Cookie, der für die Session-Variable gebraucht wird oder wenn das nicht geht die automatische Übermittlung der Session-ID über die URL).

Was die Sache mit dem zweiten Skript angeht:
Natürlich bekommt das jemand zu Gesicht, denn Formulardaten kannst du nunmal nur über ein <action> verschicken und das ruft nunmal immer eine Seite auf. Das kann dieselbe oder eine andere sein. Wenn es eine andere ist, ist es ja auch kein Ding Paramter zu übergeben, damit sie weiß, was diese nach Verarbeitung der Daten anzeigen soll. Normalerweise kann man sowas aber in einer einzigen Seite machen.


----------



## Math55 (20. Feb 2004)

ahhh ja, wie würde das jetzt in code aussehen?

DANKE


----------



## AlArenal (20. Feb 2004)

Gute Frage, habe selbst noch net groß was mit JSP gemacht. 

Musst du mal in die Dokus schauen. Es gibt nen Parameter um Session-Handling zu aktivieren, dann Methoden um Variablen als Session-Variablen zu deklarieren und normalerweise mache ich es bei Formularen so, dass ich ein <input type="hidden" name="sent" value="1"> o.ä. drin habe, so dass ich am Anfang des Skripts einfach abfragen kann, ob die Seite das Formular anzeigen oder verarbeiten soll.

Ein bischen Arbeit muss ich dir ja auch noch lassen.. 

Ich weiß nur noch, dass für mich als einer, der jahrelang PHP gemacht hat, die strikte Typisierung von Java mir bei nem JSP tierisch auf den Senkel ging. In PHP schauste ob und was drin ist in einer Variable, in JSP musst du die erst holen, dann schauen ob sie nen Wert hat, ob sie den richtigen Typ hat und dann kannste so langsam mal was damit machen..


----------



## Math55 (20. Feb 2004)

also ich habs jetzt mit session.setattribute bzw. getattribute gemacht. allerdings ist ja das problem, dass ich, wenn ich daten in einer arraylist speichern will, auch eine anlegen muß. das mach ich am anfang der jsp seite. rufe ich also jetzt die seite auf und speichere die sessionvariable in der liste, möchte ich aber wieder was speichern, wird die liste wieder neu angelegt, da am seitenanfang. qwie mach ich das denn? die arraylist nur einmal prosession anlegen, oder wie? wie ginge das? viele fragen, ichweiß!! DANKE


----------



## AlArenal (20. Feb 2004)

Für sowas hat der Erfinder die if-Abfrage erfunden. Du musst am Anfang natürlich schauen, ob du eine neue Session starten musst oder dich bereits in einer befindest. Daraus ergeben sich dann die Notwendigkeiten Variablen anzulegen - oder auch nicht.


----------



## odysseus (24. Feb 2004)

weiss nicht genau ob Dir das hilft, aber ich würde die daten, also artikeldaten, etc. in einem DialogView abspeichern,
jede JSP sollte doch einen DialogView haben, und einen DialogController. So läuft das zumindest bei uns, mit DlgCtrls, DlgViews, und SequenceFlow und so, oder machst Du das ganz anders ?


----------



## Math55 (25. Feb 2004)

also um ehrlich zu seni, sagt mir das garnichts. haste mal en stück code bzw. mehr details? 

DANKE


----------

