2013-08-02 14 views
5

Ustawiam zmienną sesji w serwletu i chcę uzyskać dostęp do tej zmiennej w javascript.Odczytać zmienną sesji w javascript?

ps = con.prepareStatement("select * from USERDETAILS where username=? and password=?"); 
ps.setString(1, username); 
session.setAttribute("userName", username); 

Próbowałem ich w funkcji javascript. ale to nie działało ...

var name = ${userName}; 
var name = '<%= Session["userName"] %>'; 
+0

możliwe duplikat [dostępu sesji zmienne w JavaScript wewnątrz JSP] (http://stackoverflow.com/questions/7241442/accessing-session-variables-in-javascript-inside- jsp) –

+0

btw jakiego języka używa serwer? – gnanz

Odpowiedz

6

Wydaje powinieneś być w stanie korzystać getAttribute():

var name = '<%= session.getAttribute("userName") %>'; 

choć zależy to od Java uruchomione za pomocą pliku do zastąpienia wbudowany <%= ... %>, co prawdopodobnie nie będzie miało miejsca w oddzielnych plikach .js.

+0

Używam pliku .js i sepr. Używam 'var name = '<% = session.getAttribute (" userName ")%>';' Sprawdziłem wartość nazwy var i było to <% = sesja .getAttribute ("userName")%> zamiast wartości! Co jest nie tak ? – Poorya

+0

@pouria Pytania naprawdę nie powinny być publikowane w komentarzach. http: // stackoverflow.com/questions/ask i link do tego pytania i odpowiedzi, jeśli chcesz się do niego odnieść. Krótko mówiąc, JSP nie analizuje pliku, aby wykonać jakiekolwiek zmiany. Jest traktowany jako statyczny, tak jak wszystkie obrazy i wysyłany do przeglądarki. –

+0

dzięki za heads up! Czy mógłbyś sprawdzić [to] (http://stackoverflow.com/questions/19887753/how-to-add-hidden-attribute-to-dom-using-servlet) – Poorya

1

O ile sesja nie została całkowicie zapisana w pliku cookie, nie można odczytać zmiennej sesji w JavaScript. Powinieneś przechowywać zmienną zawartość w zmiennej JavaScript podczas generowania strony lub użyć AJAX, aby pobrać ją później.

2

Spróbuj użyć tego kodudostęp do sesji:

var myName= '<%= Session["myName"]%>'; 
+0

bardzo stary, ale tego szukałem, zmarnowałem 2 godziny przed przyjazdem tutaj. Dziękuję Ci bardzo. –

0

Czy sprawdziłeś w debugerze (debugger javascript) jaką nazwę zawiera?
Czy próbowałeś przypisać nazwę do html, aby upewnić się, że dane zostały poprawnie przypisane?
Czy próbowałeś usunąć cytaty?
również twój kod powinien znajdować się na stronie głównej, aby silnik serwera mógł przez niego przejść i dokonać zamiany sesji ("userName") na rzeczywistą wartość.

0

dla tych, którzy się błąd o kodzie poniżej około znaków takich jak <% vs.

var name = '<%= session.getAttribute("username") %>'; 

miałem ten sam problem, ale okazało się, że skrypt umieszczony w niewłaściwym miejscu w kodzie.

Lepiej sprawdź, gdzie umieściłeś kod.

Nadzieja to pomaga

0

spróbować -> {sessionScope.username}

Domyślnie strony, żądanie, sesji i aplikacji obiekty są dostępne na stronach JSP. Możesz więc uzyskać dostęp, używając składni EL.

Poniższa tabela przedstawia obiekty IMPLICIT dostępne dla EL.

 Implicit object   Description 
1.  pageScope  Scoped variables from page scope 
2.  requestScope  Scoped variables from request scope 
3.  sessionScope  Scoped variables from session scope 
4.  applicationScope Scoped variables from application scope 
5.  param   Request parameters as strings 
6.  paramValues  Request parameters as collections of strings 
7.  header   HTTP request headers as strings 
8.  headerValues  HTTP request headers as collections of strings 
9.  initParam  Context-initialization parameters 
10. cookie   Cookie values 
11. pageContext  The JSP PageContext object for the current page 

odniesienia: Are session and sessionScope the same in JSP EL?

Powiązane problemy