Liste Object Löschen

Status
Nicht offen für weitere Antworten.

sence

Bekanntes Mitglied
Hallo,

ich schreibe gerade einen Warenkorb und realisiere die anzahl der Ausgewählten Produkte mit einer ArrayList.

Soweit so gut...

Wenn nun ein kunde ein Object aus dem Warenkorb löschen will, benutze ich den Iterator

in meinen Test beispielen funktioniert alles oO

Java:
package system;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

// Produkte setzten und in den Warenkorb
public class warenkorbInit extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

    public warenkorbInit() {
        super();
        // TODO Auto-generated constructor stub
    }


	@SuppressWarnings("unchecked")
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	String pid = request.getParameter("pid");
	String delPid = "";
	delPid = request.getParameter("delPid");
	HttpSession session = request.getSession(true);
	
	
	Object obj = session.getAttribute("pids");
	
	// Waren korb noch nicht vorhanden
	if(obj == null) {
		List<String> produkte = new ArrayList<String>();
		produkte.add(pid);
		session.setAttribute("pids", produkte);
		
		//erledigt, und in den Warenkorb wechseln
		String uri ="order/bestellung.jsp";
		String encodedUrl = response.encodeRedirectURL(uri);
		response.sendRedirect(encodedUrl);
	}else {
		// Bestehenden Warenkorb erweitern
		List<String> list = (ArrayList<String>) session.getAttribute("pids");	
	list.add(pid);
	session.setAttribute("pids", list);
	
	// erledigt, und in den Warenkorb wechseln
	String uri ="order/bestellung.jsp";
	String encodedUrl = response.encodeRedirectURL(uri);
	response.sendRedirect(encodedUrl);
	}
	
	// Löschung eines Produktes
		
		ArrayList<String> list3 = (ArrayList<String>) session.getAttribute("pids");
	    if(delPid.equals("") == false) {	
		for (Iterator iter = list3.iterator(); iter.hasNext();) {
	    		Object o = iter.next();	    		
	    		if(delPid.equals(o)) {
	    			iter.remove();
	    			}
		}
				
	    	// erledigt, und in den Warenkorb wechseln
	    	String uri ="order/bestellung.jsp";
	    	String encodedUrl = response.encodeRedirectURL(uri);
	    	response.encodeURL(encodedUrl);
	   }

			
}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

ich bekomme jedesmal eine Nullpointer, wenn ich nun ein Produkt eintrage (ab der stelle, wo das löschen definiert ist), das produkt eintragen selbst hat vor meiner lösch Bedingung einwandfrei funktioniert. nun will nichts mehr :/

danke!!!!!!
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Fehler muss man bearbeiten, nicht nur Ausrufezeichen schreiben,

-------

wenn der Fehler übrigens schon beim 'Produkt eintragen' kommt, warum schreibst du dann oben
'Wenn nun ein kunde ein Object aus dem Warenkorb löschen will, benutze ich den Iterator'?

ist das Löschen erstmal nicht ganz egal, wenn das Einfügen nicht klappt?

--------

zum Eintragen: Tests und echte Ausführung sind manchmal zwei Paar Schuhe,
wichtig ist, die echte Ausführung zu analysieren,

aller erste Aufgabe ist das Bereitstellen von Logging oder Debugging, Logger, System.out.println, irgendwas vorhanden?
im Zweifel jede Meldung als Exception werfen, wenn du die NullpointerException siehst, dann muss das ja wenigstens funktionieren ;)

zweite Aufgabe: bei jedem Request erstmal Zustand der Session ausgeben,
gut, beim Einfügen ist das noch nicht so spannend, außer die Session wäre null,

dritte Aufgabe:
bei NullPointerExceptions ist nämlich generell das Problem, dass irgendwas null ist,
also: Zeile des Fehlers rausfinden und fragliche Objekte prüfen, ob sie null sind
 

sence

Bekanntes Mitglied
Hey,

Also ein einfügen funktioniert ja ohne Probleme, auch das erweitern des Warenkorb funktioniert prima !

nur das löschen will er nicht.
Deshalb schrieb ich auch nur den Fehler beim Löschen :- )
 
S

SlaterB

Gast
das widerspricht vollkommen
> ich bekomme jedesmal eine Nullpointer, wenn ich so ein Produkt eintrage, also ich komme so gerade nicht mal mehr zum löschen
aber von mir aus,

nun gilt es besonders, die Session zu analysieren, ob da die Liste drin ist,
ansonsten genau das gleiche
 

sence

Bekanntes Mitglied
Danke schonmal, da bin ich kräftig bei *g*

Also bevor ich die Lösch anweißung aufgenommen habe, funktionierte mein Vorhaben.
, produkt hinzufügen und die Liste erweitern.

Nachdem ich die Lösch Anweißung aufnahm, kann ich noch nicht mal mehr ein Produkt einfügen, da die Lösch anweißung einen Fehler macht.
Und zwar den Nullpointer bei der ü+berprüfung:

if(delPid.equals("") == false) {
Iterator holen und Objekt löschen
}
 
S

SlaterB

Gast
na gut, der Code zum Löschen sollte bei einem Einfüge-Vorgang auch nicht unbedingt ausgeführt werden,
wie wärs mit verschiedenen Servlets?

oder hier ganz simpel, wie man aus der Fehlermeldung auch erahnen könnte:

if (delPid != null) {
// alles zum Löschen
} else {
// sonst nix zu löschen
}
 

sence

Bekanntes Mitglied
Schau mal, hab es jetzt so, aber bekomme trotzdem nen fehler, bzw es wird das Objekt nicht gelöscht, und irgendwie verdoppelt sich gerade ein produkt, wenn ich das andere kille. Als würde es an dessen Stelle springen oO

Java:
package system;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

// Produkte setzten und in den Warenkorb
public class warenkorbInit extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

    public warenkorbInit() {
        super();
        // TODO Auto-generated constructor stub
    }


	@SuppressWarnings("unchecked")
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	String pid = request.getParameter("pid");
	String del = request.getParameter("del");
	
	HttpSession session = request.getSession(true);
	session.setAttribute("test", del);
	
	List<String> list = (ArrayList<String>) session.getAttribute("pids");
	
	if(list != null) {
	for(Iterator it = list.iterator(); it.hasNext();) {
	Object s = it.next();
		if(s.equals(del)) {		
		it.remove();
		String uri ="order/bestellung.jsp";
		String encodedUrl = response.encodeRedirectURL(uri);
		response.sendRedirect(encodedUrl);
		}else {
			// kaffee trinken
		}
	}	
	}else {
		// kaffee trinken
	}
	// Waren korb noch nicht vorhanden
	if(pid.length() != 0) {	
	if(list == null) {	
		list = new ArrayList<String>();
		list.add(pid);
		session.setAttribute("pids", list);
		
		//erledigt, und in den Warenkorb wechseln
		String uri ="order/bestellung.jsp";
		String encodedUrl = response.encodeRedirectURL(uri);
		response.sendRedirect(encodedUrl);
	}else {
		
		// Bestehenden Warenkorb erweitern
		list.add(pid);	
		session.setAttribute("pids", list);
		
	// erledigt, und in den Warenkorb wechseln
	String uri ="order/bestellung.jsp";
	String encodedUrl = response.encodeRedirectURL(uri);
	response.sendRedirect(encodedUrl);
	}
	}

}
	

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

Vielen Dank!
 
S

SlaterB

Gast
was deine Request für Parameter-Kombinationen bringen, mag ich nicht erahnen,
Logging Logging Logging,

am Ende solltest du dann zu jedem Request eine Ausgabe wie folgt erhalten:

> Request in warenkorbInit, Wert für pid = .., Wert für del = ..
> Liste in der Session war vorher null/ folgende Werte ..

und auch die einzelnen Aktionen mit ihren Bedingungen loggst du, z.B.

> list ist da, durchlaufe Liste hinsichtlich Löschen
> Objekt x = .., kein del
..
> Objekt x = .., lösche nun

> pid ist da, füge es nun ein,
> neue Liste = ..

am Ende kommt noch

> leite nun weiter an JSP ..

wenn du derartiges Logging verwendest, sieht du genau was passiert und auch ob z.B. zwei Dinge gleichzeitig ablaufen,
ich werde es nicht mehr einzeln anschauen, wobei ich mutmaßen müsste, ob nun pid und del gleichzeitig gesetzt sind
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
MiMa Filtern von TableView Liste Allgemeine Java-Themen 2
B Liste aller Kombintionen mit Einschränkungen Allgemeine Java-Themen 8
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
D Erste Schritte Liste erweitern Allgemeine Java-Themen 11
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
M einfach verkettete Liste verstehen Allgemeine Java-Themen 23
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
bueseb84 Spring Boot Entity mit Liste Allgemeine Java-Themen 4
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Curtis_MC Collections Liste anhand mehrere Kriterien sortieren Allgemeine Java-Themen 6
K verkettete Liste Allgemeine Java-Themen 3
G Liste (UsageStats) sortieren (Android) Allgemeine Java-Themen 5
T Google Links in einer Liste Allgemeine Java-Themen 4
looparda Liste filtern nach Prädikaten verschiedener Typen Allgemeine Java-Themen 3
OSchriever Einfach verkettete Liste ändern Allgemeine Java-Themen 43
L Liste überschreibt alte Elemte Allgemeine Java-Themen 10
H Länge einer verketteten Liste Allgemeine Java-Themen 4
E Erstellen einer Liste mit einer maximalen Menge an Elementen Allgemeine Java-Themen 13
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
L Erste Schritte Liste von Datums filter nach Monate Allgemeine Java-Themen 4
Y Liste in Stream Packen Allgemeine Java-Themen 1
K Einfache Verkettete Liste mit Node Allgemeine Java-Themen 3
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
perlenfischer1984 Liste mit generics zurück liefern Allgemeine Java-Themen 8
S Verkettete (Teil)Liste sortieren ( rekursiv bis n) Allgemeine Java-Themen 2
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
B Wie vergleiche ich Strings in einer Liste? Allgemeine Java-Themen 5
Viktim Threads Liste In unterschiedlichen Threads bearbeiten Allgemeine Java-Themen 23
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
I Abstrakte Datentypen - Liste Allgemeine Java-Themen 9
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
Z In die Liste kann ich nichts adden Allgemeine Java-Themen 16
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
M liste von listen anders ausgeben Allgemeine Java-Themen 1
B Per Buttonklicks einer Liste Wörter hinzufügen - Wie umsetzen? Allgemeine Java-Themen 11
H Liste sortieren anhand optionalem Property Allgemeine Java-Themen 3
L Liste führt sich nicht weiter Allgemeine Java-Themen 5
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
A Auslesen einer Datei sowie ausgeben als Liste in App Allgemeine Java-Themen 5
E Liste löscht sich selbstständig Allgemeine Java-Themen 5
H Liste von Objekten generisch sortieren Allgemeine Java-Themen 0
D Liste anhand Standardnormalverteilung befüllen Allgemeine Java-Themen 1
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
O aus Liste ein beliebiges Element auswählen Allgemeine Java-Themen 7
J Liste aller Com-Ports - zweistellige Ports? Allgemeine Java-Themen 15
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
MiMa Liste von Pfaden in eine textArea schreiben Allgemeine Java-Themen 7
K kontinuierlich aktuelle Bestellsystem-Liste mit farbigem Status Allgemeine Java-Themen 2
A Auswählbare Liste Allgemeine Java-Themen 2
D Sortieren von Liste zu unperformant Allgemeine Java-Themen 6
N Liste gesucht Allgemeine Java-Themen 2
Z Sortiertes Einfügen in doppelt verkettete Liste Allgemeine Java-Themen 5
S Probleme beim Auslesen einer Liste Allgemeine Java-Themen 8
O JSON String bauen aus Liste Allgemeine Java-Themen 2
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
T Hashmap mit geordneter/ungeordneter liste als Value Allgemeine Java-Themen 5
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
S Threads Liste mit Objekten in Teillisten zerlegen und abarbeiten Allgemeine Java-Themen 3
R ThreadPool - vorhandene thread liste überprüfen bzw. aufräumen Allgemeine Java-Themen 3
pg1337 Liste füllen Allgemeine Java-Themen 2
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
B Properties File Liste Allgemeine Java-Themen 3
Gossi Collections Liste zusammenfassen für JSP Allgemeine Java-Themen 4
Gossi Collections (Unbekannte) Liste Sortieren Allgemeine Java-Themen 10
T Collections Liste schnell/nebenläufig durchgehen Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
Q "Doppelte" Einträge einer Liste entfernen Allgemeine Java-Themen 14
C Exponentielle Verteilung in einer Liste Allgemeine Java-Themen 7
Nic.o liste der installierten Zertifikate ?! Allgemeine Java-Themen 3
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
M Verständnisfragen bezüglich Liste Allgemeine Java-Themen 3
S AWT Wie bekomme ich eine Liste aller chars in einem Font? Allgemeine Java-Themen 3
J Zeichenketten-Liste filtern Allgemeine Java-Themen 6
S Aus einer Liste<Oberklasse> alle Elemente die eine bestimmte Unterklasse von Oberklasse haben filter Allgemeine Java-Themen 8
K Liste aller implementierenden Klassen einer Oberklasse anzeigen Allgemeine Java-Themen 4
M Eintrag verschwindet aus Liste Allgemeine Java-Themen 3
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
reibi Kopie einer Liste Allgemeine Java-Themen 4
N Liste mit Map abgleichen extrem langsam Allgemeine Java-Themen 6
C Darstellung der Liste bei vielen Daten extrem langsam Allgemeine Java-Themen 11
T Liste sortieren Allgemeine Java-Themen 6
L Objekte in Liste packen Allgemeine Java-Themen 2
N Liste aendern waehrend des iterierens ueber selbige Allgemeine Java-Themen 11
B Datenstruktur: Liste Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben