Session Problem

evildrno

Mitglied
Hi leute,
ich hab ein Problem mit der Session bei Servlet:
Kann es sein dass man mit session (request.getSession()) und session.setAttribute(String, Object) nur Integer und Strings o.ä. speichern, bzw übergeben und wieder auslesen kann?

Als ich das ganze nur mit nem String gemacht hab, wars kein Problem den Wert wieder rauszulesen.
Aber als ich versuchte eine Instanz einer selber geschriebenen Klasse zu laden hab ich nur n null
zurückbekommen.

Hier mal der Code von doGet (in doPost steht halt doGet(request,response drin ^^ )) :
Java:
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session= request.getSession(false);
		if(session==null){
			session=request.getSession(true);
		}
		//SessionCont sCont = (SessionCont)session.getAttribute("sCont");
		String sCont= (String)session.getAttribute("sCont");
		
		PrintWriter aus = response.getWriter();
		//if(sCont == null);
		//	sCont=new SessionCont("hallo");
		if(sCont==null)
			sCont="hallo";
		
		aus.println("<html><body>");
		if(request.getParameter("link")!=null){
			//sCont.setDatei(request.getParameter("link"));
			sCont=(request.getParameter("link"));
		}
		
		//String pressedLink=sCont.getDatei();
		String pressedLink=sCont;
		aus.println(pressedLink+"  V:7 ");
		
		aus.println("<a href=\"SessionTest?link=1\">Link 1</a>  ");
		aus.println("<a href=\"SessionTest?link=2\">Link 2</a>  ");
		aus.println("<a href=\"SessionTest\">Link ohne Parameter</a>  ");
		aus.println("</body></html>");
		session.setAttribute("sCont", sCont);
	}

und noch meine andere Class :

Java:
public class SessionCont{
	private String welcher;
	
	SessionCont(String a){
		this.welcher=a;
	}
	
	public void setDatei(String a){
		this.welcher=a;
	}
	public String getDatei(){
		return this.welcher;
	}
	
}
Also eig. Sollte ja nun das Auskommentierte das selbe machen wie das direkt darunter, machts aber nicht.

Also bitte bitte helft mir, bzw sagt mir was ich da falsch mach.
Ich fänds nämlich voll geschickt einfach sone SessionContainer klasse zu machen, damit ich net alle Werte einzeln speichern muss.
Das hier is ja nur n Test obs tut, des eigentliche Prog is halt etwas größer.

Also Danke!!!
 
Zuletzt bearbeitet:
S

SlaterB

Gast
speichere gleichzeitig einen String sowie ein Objekt und prüfe, ob danach der String noch da ist, das Objekt aber nicht mehr,
also ob dieses einzelne Objekt ein Problem in der Speicherung verursacht oder gar eine ganz neue Session angelegt wird,

allgemein empfiehlt es sich, das Interface Serializable zu implementieren, String tut dies,
aber ohne Fehlermeldung ist das nicht besonders einsichtlich und ich kann mich auch nicht erinnern dass das zwingend wäre

First, ensure that all of your objects stored in the HttpSession implement the java.io.Serializable interface. This is a best practice for HttpSession development that you should follow because not implementing Serializable can lead to loss of data. However, doing this is crucial to the next part of the best practice.
Best Practice: Improving HttpSession Performance with Smart Serialization
 

pizza1234

Mitglied
Hi,
wo wird denn dein Objekt SessionCont ininitalisiert? Ich sehe nirgends ein " = new SessionCont("test")", bzw, ist das auskommentiert! Abgesehen müßtest du nicht auch ein "implements Serializable" an SessionCont schreiben? Abgesehen davon kann man ja so ein Servlet auch prima debuggen...

Grüße
Peter
 

evildrno

Mitglied
@piza1234

das objetct wird nach dem laden aus der session, falls es null ist neu instanziiert (zeile 10 und 11).
deshalb merk ich ja auch das es eben immer null zurückgiebt, da später in der Ausgabe immer hallo erscheint (da ja Hallo im Konstruktor in diesen zeilen übergeben wird).

ALso ich versuche das ncohmal mit serializable, hab ich aber schon mal versucht, ging aber irwie dann auch net...

Aber allg. ist es also möglich auch so ein Objekt zu speichern???
 
S

SlaterB

Gast
allgemein sicherlich,
hier eine Seite sowohl mit Bestätigung also auch interessanter im unteren Bereich Untersuchungsmethoden zur Session
Session-Verwaltung in Servlets mit HttpSession | tutego

kannst ja mal ausprobieren falls schon JSPs oder ähnliches möglich bzw. geht ja auch im Servlet in OutputStream,
ich frage mich immer noch ob nicht eine komplett neue Session angelegt wird,
auch wenn ich bei Beantwortung dieses Punktes, ob ja oder nein, nicht wirklich noch was neues zu sagen hätte ;)
 

evildrno

Mitglied
mh ok ich hab grad nochmal n bissle rumgespielt, und bin jetzt total verwirrt:
Ich hab in SessionCont Serializable implementiert, dass ich des schon mal ausschliesen kann.
Hab überprüft ob immer ne neue Session angelegt wird: nein, also soweit so gut.
Wenn ich mit session.getAttribute("sCont").getClass überprüf was für ne Class er in Session gespeichert hat sagt er mir auch dass es ne SessionCont class is, also soweit auch so gut, aber warum zur hölle meint er dann mit:

sCont=session.getAttribute("sCont");
if(sCont==null){
aus.println("null bekommen");
}

dass er n null bekommen hat?

@SlaterB danke für den Link ;-)
aber irgendiw kann ich keinen unterschied zu dem was ich grad geprogt hab sehen und bei mir tuts immernoch net ;(
 
S

SlaterB

Gast
rufst du
> session.getAttribute("sCont").getClass()
beim Abspeichern auf oder genau an der Stelle an der du null herausliest?

ersteres wäre ja kein Wunder, direkt nach dem Abspeichern wird dann das Auslesen auch noch klappen oder?
nur was beim nächsten Request passiert ist die Schwierigkeit

> Hab überprüft ob immer ne neue Session angelegt wird: nein, also soweit so gut.

ohne Begründung den Punkt abgeschlossen?, na wie du meinst, aber wäre schade wenn es daran liegt.. ;)
 

evildrno

Mitglied
ok wie gesagt des ding verwirrt mich einfach nur total!
Habs grad nochmal neu geschriebne, wüsste jetzt aber net was ich anders gemacht hab...
Aber jetzt tuts soweit.
Aber danke an euch!!!

ps: ja ne ich habs schon direkt am Anfang abgefragt, nicht nach dem Speichern, wär ja sonst blöd, aber dann wäre ich ja auhc nicht verwirrt^^.

Hier mal den code der jetzt soweit tut:

[Java]
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String debug="";
HttpSession session= request.getSession(false);
if(session==null){
session=request.getSession(true);
debug="session nicht geladen";
} else {

//hier ausgabe was für ne Klasse
debug+="</br> "+session.getAttribute("sCont").getClass();
}
PrintWriter aus = response.getWriter();



SessionCont sCont=(SessionCont) session.getAttribute("sCont");
if(sCont==null){
sCont= new SessionCont("123");
debug+=" </br> aus Session nur null bekommen </br>";
}

sCont.setDatei(sCont.getDatei()+"l");

aus.println("<html><body>");
aus.println(sCont.getDatei()+" </br> ");
aus.println(debug);
aus.println("</body></html>");
session.setAttribute("sCont", sCont);
}

[/Java]

So in etwa war auch des prinzip vorhin, als .getClass() das richtige ausgegeben hatt, aber ich doch nurn null bekommen hab.

Ich hab grad irgendwie die befürchtung dass es daran lag, dass der Tomcat die SessionCont Klasse nicht neugeladen hat, nachdem ichs auf serializable gestellt hab oder sowas...
 
Zuletzt bearbeitet:
S

SlaterB

Gast
falls vielleicht der String-Identifer "sCont" falsch geschrieben war,
bietet sich eine notfalls statische gemeinsame Variable an, statt jedesmal den String direkt hinzuschreiben

auch ist es nützlich, einfach mal komplett alle Objekte in der Session anzuschauen,
da gibts auch ne Methode, getAttributeNames()
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Session-Problem Allgemeines EE 2
G Session Problem Allgemeines EE 5
Q Tomcat/java-Session-Problem Allgemeines EE 9
P Session Problem Allgemeines EE 17
F Problem mit Session (Weitergabe an andere JSPs) Allgemeines EE 2
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
O JSF / Primefaces Session handling Allgemeines EE 1
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
H Shared Session in Webmodulen Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
F Session zerstören Allgemeines EE 12
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
G Session Allgemeines EE 6
G Session neu!? Allgemeines EE 7
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
D Frage zum Statefull Session Beans Lebenszyklus Allgemeines EE 3
MQue Session - Cookie Allgemeines EE 27
MQue Session Exception Allgemeines EE 5
M j_security_check Login und Session-ID Allgemeines EE 2
S Session in eine andere Anwendung übergeben Allgemeines EE 2
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
Y myFaces und Hibernate Session Handling Allgemeines EE 7
S tomcat session timeout - und was danach? Allgemeines EE 1
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
G Session Cookies Allgemeines EE 2
Q Session Tracking - Wie macht mans richtig! Allgemeines EE 3
B Session Daten pro User merken Allgemeines EE 9
H [JSP JSF] Session Timeout und Redirekt zur Startseite Allgemeines EE 5
I Session-Attribute von Client zugänglich? Allgemeines EE 6
G session token Allgemeines EE 3
K tomcat: session-unabhängiges speichern Allgemeines EE 3
S Struts und Session Allgemeines EE 2
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
Y JSF - Session Handling Firefox Allgemeines EE 3
Y JSF - Session invalidate bei outpulink möglich? Allgemeines EE 4
R Session Tracking & Cookies Allgemeines EE 3
B Variablen ausserhalb der session ? Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
W Session tracking mit URL rewrite - Session weg! Allgemeines EE 4
G Neue Session bei der Verwendung von Frames Allgemeines EE 3
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
Z Session aufräumen Allgemeines EE 2
G JBoss - Session / Entity Allgemeines EE 8
S Bild in Session Allgemeines EE 2
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
P Struts Form Bean vs. Session Variable Allgemeines EE 6
A JSF - Daten in Session speichern Allgemeines EE 2
R Formulareingaben gezielt aus Session löschen Allgemeines EE 4
W Session nach Browserschließung erhalten im Tomcat Allgemeines EE 4
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
L Zwei Browserfenster mit unterschiedlicher session - geht das Allgemeines EE 3
flashfactor Logging in einem Session-Bean Allgemeines EE 2
H JSP, Session und Java-Bean Allgemeines EE 4
flashfactor Frage zu Session-Lebensdauer Allgemeines EE 3
J xdoclet session facade + value object Allgemeines EE 2
M Session Bean vers. Entity Bean Allgemeines EE 3
G ResultSet in Session speichern Allgemeines EE 4
P Session Attribute an Klasse übergeben Allgemeines EE 13
G Mit Session-IDs richtig umgehen Allgemeines EE 3
C Mail von einer Session Bean aus senden Allgemeines EE 2
P Session NullPointerException Allgemeines EE 17
H daten in session speichern Allgemeines EE 8
G list in session schreiben Allgemeines EE 4
P String-Array an session Variable übergeben Allgemeines EE 3
P Session Beans importieren Allgemeines EE 2
D Problem mit Update von ApacheHttpClient von 5.2 auf 5.3 Allgemeines EE 10
D Problem mit redundanten Servern Allgemeines EE 7
Azemaria JSF: Problem bei der einfachsten Applikation Allgemeines EE 2
P JPA Internal Problem Nullpointer Allgemeines EE 10
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
B Problem beim Lesen des Codes... Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
S WebSocket Problem Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
Raidri [SEAM] rich:dataTable sortBy Problem Allgemeines EE 6
T Problem mit den Beispielen von Apache Allgemeines EE 5
W JSF Validator Problem HTTP Status 500 Allgemeines EE 2
E JBoss 7.1 Datasource Problem Allgemeines EE 2
M JSP Problem -unbestimmte Anzahl von Werten Transportieren Allgemeines EE 9
S Problem mit EJB Verständnis Allgemeines EE 4
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
F JSP Problem mit Datenbankanbindung über Glassfishserver Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
S Embedded JBoss Problem beim Deployment Allgemeines EE 4
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
ruutaiokwu jboss problem - work-verzeichnis muss manuell gelöscht werden??? Allgemeines EE 5
Stillmatic sendRedirect Problem! Allgemeines EE 3
M Problem mit Lookup auf EJB3 mit Glassfish Allgemeines EE 11
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
X JBoss InitialContext problem Allgemeines EE 5
LordZed Problem mit dem einbinden von Bibliotheken, die sich gegenseitig verwenden Allgemeines EE 5
H GWT Problem beim Ausführen Allgemeines EE 8

Ähnliche Java Themen

Neue Themen


Oben