webForumDet fria alternativet

Session i java

11 svar · 657 visningar · startad av AG

AGMedlem sedan mars 20001 266 inlägg
#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

sgtpepperMedlem 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()

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

AGMedlem 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]

spangoMedlem 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]%>

------------------
Jag är en tolerant person, men bara mot de jag gillar, så passa dig!

sgtpepperMedlem 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.

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

[Redigerat av sgtpepper den 20 mar 2001]

AGMedlem 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]

sgtpepperMedlem 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 ;))

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

AGMedlem 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

sgtpepperMedlem 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?

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

AGMedlem 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

sgtpepperMedlem 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);

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

AGMedlem 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

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
134 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)