我讀過堆棧溢出的另一個答案,其中解釋了jsp頁面中由spring mvc存儲的會話變量的使用。我可以從js前端訪問由spring mvc存儲的會話變量
我想知道的是,我可以從HTML前端的JavaScript代碼中訪問這樣的會話變量,以使用Spring的後端Web應用程序嗎?如果是,那麼我如何從JavaScript訪問會話變量?
我讀過堆棧溢出的另一個答案,其中解釋了jsp頁面中由spring mvc存儲的會話變量的使用。我可以從js前端訪問由spring mvc存儲的會話變量
我想知道的是,我可以從HTML前端的JavaScript代碼中訪問這樣的會話變量,以使用Spring的後端Web應用程序嗎?如果是,那麼我如何從JavaScript訪問會話變量?
不,不是直接。
考慮到會話變量存在於內存中的服務器上和JavaScript在客戶在瀏覽器上執行。一旦清楚了,還應該清楚爲什麼你不能直接訪問客戶端JavaScript中的會話變量。
如果您需要在JavaScript代碼中讀取會話變量,那麼可以採取一些方法。
您將不得不迭代會話變量並打印出一個腳本,該腳本將會話屬性設置爲數組。
用於例如,在你的JSP代碼:
添加以下行
<script>
var session= new Array();
<%
for (Enumeration e = session.getAttributeNames() ; e.hasMoreElements() ;) {
Object obj= e.nextElement();
%>session['<%=obj%>']='<%=(String)session.getAttribute(obj)%>';<%
}
%>
</script>
這是假設你的會話屬性是字符串。
現在,您可以訪問瀏覽器會話屬性的JavaScript
爲如:session['key1']
將給對應的屬性在服務器KEY1會話的字符串表示。
參考答案中的第2點,這樣的服務很容易被黑客濫用嗎?你也可以指點我的一些示例代碼爲你的觀點嗎?謝謝 – Arvind