Gå til innhold

Problem med session i JSP


Anbefalte innlegg

Jeg bruker en session for å definere en tekst som skal være dynamisk og være forskjellig i visse tilfeller. Problemet er at når jeg lager en funksjon slik:

 

String visTekst(){

 

String ut = session.getAttribute("teksten");

if ( ut.equals("") ){

session.setAttribute( "teksten", "Fyll ut skjemaet for å registrere ny bruker:" );

}

 

ut = session.getAttribute("teksten");

return ut;

}

 

så får jeg feilmelding om at session ikke er en definert variabel. Kan jeg ikke bruke session inne i en funksjon, eller hva er greia?

Lenke til kommentar
Videoannonse
Annonse

At du får session som en ikke definert variable kan komme av at ditt script er et klientside-script (men hva vet jeg?). Tingen er nemlig at session er et serverside-objekt og kan således bare brukes i serverside-script. Videre må f.eks. i asp, funksjoner ligge inne i <script> .... </script> , men den sekvensielle kode legger man gjerne mellom <% .... %>.

Lenke til kommentar

Funksjonen ligger mellom <%! og %>, det er vel slik man kan definere funksjoner i jsp. Når jeg skal vise den fram skrives det slik: <%= visTekst(); %>

 

Synes bare det er så rart, for lengre opp i koden kan jeg få tak i verdiene hvis jeg skriver session.getAttribute("teksten");, men her nede i funksjonen går ikke det...

 

Alle funksjonene skrives i filer som ligger på en server som støtter jsp.

Lenke til kommentar

Jeg får dessverre opp samme feilmelding da:

 

nybruker.jsp:132: Undefined variable or class name: session

String ut = session.getAttribute("teksten");

 

Jeg vet ikke hva som er feil og jeg er ingen kløpper i jsp, jeg er på prøve/feile-stadiet. Du vet ikke tilfeldigvis om noen gode guider på innloggingsrutiner og sessions? Har bare funnet noen som dessverre ikke har vært så gode...

Lenke til kommentar

Jeg tror session.getAttribute(...) hører hjemme i servlets (dvs laget med Java). Eksempel: http://www.exampledepot.com/egs/javax.servlet/State.html

 

Her er noen eksempler på bruk av session-variabler i klassisk asp:

<%
'initialisering
session("x") = "Hallo drittsekk"
'over i y
y = session("x")
'til html-strømmen
response.write session("x")
'eller
response.write (y)
'fjerne session-variabelen x
session.Contents.Remove("x")
%>

Kort sagt, hvis du på serveren bruker klassisk asp, så bruk uttrykket: session("x") som referanse til session-variablen x eller det navnet du velger å bruke på variabelen. Hvis du bruker servlets, post gjerne spørsmålet ditt under java.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...