Mein Warenkorb JavaBean - Vector verliert die Waren

  • Themenstarter Themenstarter Kelp_Juice
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

Kelp_Juice

Gast
Hallo und Hi,

ich habe neulich mal versucht meinen eigenen Shop bzw. Warenkorb zu schreiben.

Das geht auch soweit ganz gut , bloss hab ich den Vector in meiner JavaBean eingerichtet und das ding merkt sich nur immer das was der Benutzer direkt eigibt.

Also wenn ich jetzt in Schritt 1, Index.jsp -> warenkorb Bean per setArtikel2Warenkorb(String artikel) setze , passiert genau das was ich will.

Aber ich kann nur einen Artikel reinschreiben.

Mit java.util.Vector.add... schreibe ich etwas rein.

Der Vector wird mit Vector x = new Vector initialisert.

Eine Banane wird in den Korb (Vector) gelegt , zeigt er mir das korrekt an .

Lege ich noch eine Banane hinein oder gar etwas anderes liegt die Banane nicht mehr drin .

Das geht doch nicht !

Sowas nimmt mir keiner ab.

Ausserdem könnte ich dann ja nur 1 Ding verkaufen .

Ein Loch im Einkaufswagen oder Speicher ??? Ok, muss man Reparieren ?

OK!

Aber was mach ich falsch ?

Code:
package party;
import java.util.*;




public class einkaufswagen  {    

    
  public Vector der_warenkorb = new Vector() ;
 
    
    public Vector getder_warenkorb() {
      
      return     der_warenkorb;}
    
    
    public void setder_warenkorb(String id) {
    sampleProperty.addElement(id);
    
    }
    
    public void setremove_from_der_warenkorb(String id){
    
    der_warenkorb.remove(id);
    
    }
    
}

wie kann ich denn den Inhalt des Vectros speichern?

Oder geht das nur mit import.java.beans.*;

Was genau kann man denn da machen ??
 
Also..les dir mal bitte ein entsprechendes Buch durch zum Thema Java Grundlagen 🙂

Um deine Daten über die Anwendung zu behalten musst du sie in der Session ablegen. Ich denke dass bei dir bei jedem Klick der einkaufswagen neu erstellt wird. Deshalb wird auch immer der Vektor neu erstellt.
Schau dir dazu mal Theman rund um Http, Session, Request u.s.w. an.
Davor würd ich dir aber Grundlagen ans Herz legen 🙂
 
Danke Herr Sebi ,

also ich hab ja schon ein paar Bücher hier.

Und TuTS gibts ja auch.

Aber ich hab das nicht so ganz begriffen mit den Sessions.

Das ist eher Spaerlich.


Wie kann denn eine soclhe Session integriert , genutzt werden?

Speichert die Session ohne setzen des Vector oder der Variablen , jene?

Also gehört alles was durch den user x aufgerufen wird dann zum kontext der session oder muss man den Vector Registrieren?
 
eine Session ist normlerweise Browser-Instanz-gebunden.
Eine Session eröffnest du so:

Code:
HttpSession session = request.getSession(true); 
//Übergabe von true heißt dass eine Session erzeugt wird
//falls es noch keine gibt
Und da kannst du Objekte hinzufügen und wieder auslesen

Code:
einkaufswagen e = new einkaufswagen();
session.setAttribute("einkaufswagen", e);

einkaufswagen e2 = (einkaufswagen)session.getAttribute("einkaufswagen");
 
Und wann mus der Vector Initiert werden ?


Und die Instanzierung wird dann mit einem " {if not exist session , vector usw...} = dann new Vector ... ; "

?
 
Das kommt davon wenn man die ganze Nacht nach der Lösung sucht...


😉
 
Also ist das dann rein von der JSP zu tragen , das instanzieren der session etc.


Die klasse kann technisch so bleiben , also ohne Session usw. ja?
 
Hallo , nochmal Vielen Dank für euer Hilfe!

Hier der Source , zwar nur pseudo ohne alles aber , es funzt !

Danke



Code:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page  session="true" %>
<jsp:useBean id="drop" class="party.cart" />

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    </head>
    <body>

    <h1>My Open Webshop </h1>
    

    
<%@ page import="java.util.*" %>
<%@ page import="cart.cart" %>
<%

HttpSession sessions = request.getSession(true); 
if(sessions.getAttribute("cart")!=null){ 
cart e = new cart(); 
}else{

cart e = (cart)sessions.getAttribute("cart");



sessions.setAttribute("cart", e); 
}
cart e2 = (cart)sessions.getAttribute("cart"); 

   // drop.setsampleProperty("Hello Dolo");
  Vector vec = e2.getsampleProperty();   
            
            
   
    out.println("
");
    out.println(drop.getsampleProperty());
    
    out.println("
<a>Groesse:</a> "); 
   e2.setsampleProperty("Hello Mike");
    e2.getsampleProperty();

    
    out.println("
<a>Groesse:</a> "); 
    out.println(e2.getsampleProperty());
  



        %>
    </body>
</html>
 
Und wie sähe das nun bei EJB , (Statefull) aus?



Wie würde man das machen?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben