2012-03-22 65 views
0

兩個問題與Jsp相關。管理不同服務器上的會話,並重新使用jsp包含頁面到主頁面的參數

1會話從一臺服務器維護到其他服務器。

如何在jsp文件會話中設置值,這樣我會在其他服務器上獲得相同的值?

2如果我想使用包含的jsp的聲明參數到主jsp頁面那麼如何?

請參閱本

one.jsp 
--------------- 
    ... 
    <% 
    String xyz='xyz'; 
    %> 
    ... 



two.jsp 
--------------- 
    ... 
    <jsp:include file="one.jsp"/> 
    <% 
    String zbc = xyz; //can i use this ? 
    %> 
    ... 

回答

0

回答第二question- 嗯,我想你會得到一個編譯時錯誤的JSP:包括在運行時進行評估。所以變量xyz在two.jsp中不可用。

您可以做的是將數據存儲在one.jsp中的javascript變量中,稍後可以在來自two.jsp的頁面加載時訪問它。


我沒有完全理解你的第一個問題。 會話在服務器中很常見,因此存儲在其中的所有內容都可供所有服務器訪問。

您可以使用以下代碼將屬性存儲到jsp的會話中。

<%= session.setAttribute("xyz", xyz) %> 
+0

有關所有服務器之間共享會話的聲明是錯誤的。要麼你不明白會話是如何工作的,或者你錯誤地使用術語「服務器」。 – BalusC 2012-03-22 11:23:27

+0

@BalusC你能告訴我會話如何在兩臺不同的服務器上工作嗎? – Sweety 2012-03-23 04:43:19

+0

那麼這裏的問題是'究竟Ruchi是指兩臺不同的服務器?'。如果她指的是分佈式應用程序,那麼會話對象將被移動。 – Kshitij 2012-03-26 11:08:29

0

如果您正在通過提供此功能的平臺進行工作,那麼這是可能的。 此鏈接會給你一個關於會話複製一絲glassfish platform

如果你的服務器是不是一個產業集羣,我覺得你可以在你的服務器的前面使用負載平衡器的一部分,該元素將始終重定向客戶端流量到同一臺服務器,所以你不需要在節點上覆制會話。

如果不能滿足您的需求,您可以存儲使用外部元件,希望這有助於你的會話,如BD共享緩存文件等

相關問題