2013-08-02 54 views
5

我在servlet中設置會話變量,並希望在javascript中訪問該變量。在javascript中讀會話變量?

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

我在JavaScript函數中試過這些。但它不工作...

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

的[訪問會話變量以JavaScript JSP裏面]可能重複(http://stackoverflow.com/questions/7241442/accessing-session-variables-in-javascript-inside- jsp) –

+0

btw什麼是您使用的服務器端語言? – gnanz

回答

6

看來你應該能夠使用getAttribute()

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

雖然,這取決於運行Java通過文件替換嵌入<%= ... %>,這可能不會在單獨的.js文件中出現。

+0

我使用了一個單獨的.js文件,當我使用var name ='<%= session.getAttribute(「userName」)%>';'我檢查了var名稱的值,它是'<%= session .getAttribute(「userName」)%>'而不是它的值!哪裏不對 ? – Poorya

+0

@pouria問題真的不應該發表在評論。 HTTP://計算器。com/questions/ask,如果您想參考,請鏈接到本問答。但是,簡而言之,JSP不會解析文件來執行任何替換。它被視爲靜態,就像任何圖像一樣,並按原樣發送到瀏覽器。 –

+0

感謝您的支持!你會介意檢查[this](http://stackoverflow.com/questions/19887753/how-to-add-hidden-attribute-to-dom-using-servlet) – Poorya

1

除非您的會話完全存儲在cookie中,否則無法在JavaScript中讀取會話變量。您應該在頁面生成期間將變量內容存儲在JavaScript變量中,或者使用AJAX稍後獲取它。

2

嘗試使用此代碼訪問會話:

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

雖然很古老,但這是我一直在尋找的東西,在來這裏之前我浪費了2個小時。非常感謝你。 –

0

你在調試器(javascript調試器)中檢查了什麼名稱包含?
您是否嘗試爲某個html分配名稱,以確保數據正確分配?
您是否嘗試刪除引號?
您的代碼也應該位於主頁面上,以便服務器引擎通過它並執行Session(「userName」)替換爲實際值。

0

對於那些誰得到一個錯誤,用下面的代碼大約像<%和

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

字符我有同樣的問題,但事實證明,我把腳本代碼中的一個錯誤的地方。

所以你最好檢查你把代碼放在哪裏。

希望這有助於

0

試試這個 - > {} sessionScope.username

默認頁面,請求,會話和應用對象可用於JSP頁面。所以你可以使用EL語法進行訪問。

下表顯示EL可用的IMPLICIT對象。

 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 

參考:Are session and sessionScope the same in JSP EL?