Session i java

Java

11 svar · 677 visningar · startad av AG

Medlem sedan mars 20001 266 inlägg
Trådstart#1

Har letat i flera hjälpfiler om sessions i java.
Det jag är ute efter är att kunna sitta session timeout session abandon etc.
Meningen är att det skall användas i samband med en inloggningssida i jsp.

Alltså lista en massa session attribut.

Andreas

Medlem sedan apr. 20007 588 inlägg
#2

Det du letar efter finner du på Suns J2EE-dokumentationsidor, mer precist här: HttpSession.

De funktioner som du efterfrågar är dessa:
* public void setMaxInactiveInterval(int interval)
* public void invalidate()

Medlem sedan mars 20001 266 inlägg
#3

Läste igenom den där sidan.
Försökte sedan testa det på en sida. Skrev in följande:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%@ page language=javascript %>
<%=session.getId%>

Datorn skrev ut "undefined"
Vad beror det på, kör resin som webbserver. Och varför skriver den ut:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
/session.jsp:6: Attempt to reference method getId in interface javax.servlet.http.HttpSession as an instance variable.
out.print((session.getId));

om man byter ut "javascript" mot "java"?

Det jag vill eftersträva är det man hade i asp, typ:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
"jag heter andreas" = session("user")

Tackar
Andreas

[Redigerat av AG den 20 mar 2001]

Medlem sedan juni 20008 205 inlägg
#4

Attempt to reference method getId in interface javax.servlet.http.HttpSession as an instance variable.

Ähum... brukar inte getXXX-grejer vara metoder?

<%=session.getId[b]()[/b]%>
Medlem sedan apr. 20007 588 inlägg
#5

"jag heter andreas" = session("user")

Skall vara:

"jag heter andreas" = session.getAttribute("user");

session är ju ett objekt (på en jsp-sida) av typen HttpSession så det är bara att kolla i API-dokumentationen ovan för att se vilka metoder du kan använda.

Medlem sedan mars 20001 266 inlägg
#6

Ok, testade en annan sak som verkade göra lite som jag ville också. Det var:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%
session.value.test = "korv med mos";
%>
<%=session.value.test%>

Är det något fel att göra på detta sätt?
Dët verkar fungera iaf :)

Andreas

[Redigerat av AG den 20 mar 2001]

Medlem sedan apr. 20007 588 inlägg
#7

Hummmm, du kör med Resins JavaScriptstöd för JSP antar jag? Kan tyvärr inte hjälpa dig då för jag har aldrig använt det (och har inga planer att göra det heller ;))

Medlem sedan mars 20001 266 inlägg
#8

Förklara gärna vad du använder, vill ju att mitt program skall fungera med andra webbservrar okså, den där snutten du skikade med fungerade inte, verkade det som.

Andreas

Medlem sedan apr. 20007 588 inlägg
#9

Jag kör Java på mina JSP-sidor, det gör dom flesta. Caucho har dock levererat ett stöd för JavaScript till JSP-sidor som körs på Resin, antagligen för att det kanske blir lite lättare syntax.

I längden är det dock bättre att lämna JavaScript-stödet därhän, delvis av den anledning du nämner; dina applikationer kommer inte vara körbara på andra applikationsservrar. Det är också bättre att köra ett och samma språk rakt av, Java i bönor, Java i servlets, Java på JSP-sidorna.

Hur ser det ut när du försöker plocka ut saker ur sessionen med javakod? Felmeddelanden?

Medlem sedan mars 20001 266 inlägg
#10

Får följande error på följande kod:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
/session.jsp:4: Invalid left hand side of assignment.
session.getAttribute("user") = "jag heter andreas";
^
1 error

<%@ page language=java %>
<%
session.getAttribute("user") = "jag heter andreas";
%>
<html>
<head><title>Counter</title></head>
<body bgcolor=#ffffff>
Ja titta<br>

</body>
</html>

Andreas

Medlem sedan apr. 20007 588 inlägg
#11

Vad vill du egentligen göra?

Som det är nu så försöker du tilldela metoden getAttribute() ett värde, vilket inte är möjligt. getAttribute() returnerar ett värde.

Vill du lägga in ett värde i sessionen så gör du så här:
session.setAttribute("user", "jag heter andreas");

Alltså:
Lägga in objekt i sessionen:
session.setAttribute(String namn, Object värde);

Plocka ut ett objekt ur sessionen:
mittObjekt = session.getAttribute(String namn);

Medlem sedan mars 20001 266 inlägg
#12

Har nu testat detta, verkade fungera bra på första sidan.
Gick sen över till att försöka kolla efter sessionen på annan sida enligt följande modell:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
'sida1
<%@ page language=java %>
<%
session.setAttribute("testasess", "Object värde");
%>
<html>
<head><title>Counter</title></head>
<body bgcolor=#ffffff>
Ja titta<br>
<%=session.getAttribute("testasess")%>
</body>
</html>

'sida2
<html>
 
<p>
<b><%=session.getAttribute("testasess")%></b>
</html>

Sida2 skriver ut värdet på sessionen till "null" vad beror detta på?

Andreas

268 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)