2013-08-02 31 views
5

Tôi đang đặt biến phiên trong servlet và muốn truy cập biến đó trong javascript.Đọc biến phiên trong javascript?

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

Tôi đã thử các chức năng này trong javascript. nhưng nó không hoạt động ...

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

thể trùng lặp của [truy cập các biến session trong javascript bên trong jsp] (http://stackoverflow.com/questions/7241442/accessing-session-variables-in-javascript-inside- jsp) –

+0

btw ngôn ngữ phía máy chủ bạn đang sử dụng là gì? – gnanz

Trả lời

6

Có vẻ bạn sẽ có thể sử dụng getAttribute():

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

Mặc dù, điều này phụ thuộc vào Java chạy qua các tập tin để thay thế được nhúng <%= ... %>, có thể không phải là trường hợp trong các tệp .js riêng biệt.

+0

Tôi đang sử dụng một tệp seprate .js và tôi sử dụng 'var name = '<% = session.getAttribute (" userName ")%>';' tôi đã kiểm tra giá trị của tên var và nó là '<% = session .getAttribute ("userName")%> 'thay vì giá trị của nó! Chuyện gì thế ? – Poorya

+0

@pouria Câu hỏi thực sự không được đăng trong phần bình luận. http: // stackoverflow.com/question/ask và liên kết đến phần Hỏi & đáp này nếu bạn muốn tham khảo. Nhưng, trong ngắn hạn, JSP không phân tích cú pháp tệp để thực hiện bất kỳ thay thế nào. Nó đang được coi là tĩnh, giống như bất kỳ hình ảnh nào, và được gửi tới trình duyệt. –

+0

cảm ơn người đứng đầu! bạn có nhớ kiểm tra [this] (http://stackoverflow.com/questions/19887753/how-to-add-hidden-attribute-to-dom-using-servlet) – Poorya

1

Trừ khi phiên của bạn được lưu trữ hoàn toàn trong cookie, bạn không thể đọc biến phiên trong JavaScript. Bạn nên lưu trữ các nội dung biến trong một biến JavaScript trong quá trình tạo trang hoặc sử dụng AJAX để tìm nạp nó sau này.

2

Hãy thử sử dụng này đang để truy cập phiên:

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

mặc dù rất cũ, đây là những gì tôi đang tìm kiếm, tôi lãng phí 2 giờ trước khi đến đây. Cảm ơn nhiều. –

0

Bạn đã kiểm tra trong trình gỡ lỗi (trình gỡ lỗi javascript) có chứa tên nào không?
Bạn đã cố gắng gán tên cho một số html, để đảm bảo dữ liệu được gán đúng không?
Bạn có cố gắng xóa dấu ngoặc kép không?
cũng mã của bạn phải ở trên trang chính, để máy chủ đi qua nó và thực hiện thay thế Phiên ("tên người dùng") thành giá trị thực tế.

0

cho những ai nhận được một lỗi với mã dưới đây về nhân vật như <% so với

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

tôi đã cùng một vấn đề nhưng nó bật ra rằng tôi đặt kịch bản ở một nơi sai trong các mã.

Vì vậy, bạn nên kiểm tra nơi bạn đặt mã.

Hope this helps

0

thử này -> {} sessionScope.username

By trang mặc định, yêu cầu, phiên và đối tượng áp dụng có sẵn để trang JSP. Vì vậy, bạn có thể truy cập sau đó sử dụng cú pháp EL.

Và bảng sau đây hiển thị các đối tượng IMPLICIT có sẵn cho 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 

tham khảo: Are session and sessionScope the same in JSP EL?