2011-04-07 76 views

回答

0

從您的JSP進行AJAX調用到不同的JSP。 jsp會將變量名和它的值作爲請求參數,並將變量放入會話中。

你不能只用客戶端(javascript)代碼來做到這一點!

+0

「你不能用客戶端(javascript)代碼來做到這一點!」但是你可以使用'session存儲「或」localStorage「。 – 2011-04-07 09:27:01

+0

不是這些HTML 5功能嗎?也許你可以使用它們,但我希望有一個回退機制,以防我的瀏覽器不支持'時間... – Serafeim 2011-04-07 11:55:02

+0

你可以回到IE7和舊版瀏覽器的cookie。 – 2011-04-08 13:04:44

1

使用ajax將該變量傳遞給Servlet,或者在表單提交時將其設置在某個隱藏字段中,它也會被POST。

0

最好的辦法就是將值存儲在cookie中。客戶端JavaScript和服務器端jsp都可以訪問cookie。

0

應該有一個自然流向你的程序,所以你不必爲了存儲變量而專門存儲變量的機制。我的意思是,如果你正在存儲一個userName,它應該是在登錄發生時,或者如果你正在獲取contactInfo,那麼你應該有一個專門用於這個目的的servlet。無論如何,這是你的問題的三部分答案。這是非常普通和非特異性,但會完成你想要什麼,一旦躍然紙上:

下面是web.xml文件:

<servlet> 
     <servlet-name>StoreVariableServlet</servlet-name> 
     <servlet-class>tests.servlets.StoreVariableServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>StoreVariableServlet</servlet-name> 
     <url-pattern>/storeVariableServlet</url-pattern> 
    </servlet-mapping> 

這裏是jQuery代碼:

$.ajax({ 
     type: "POST", 
     url: "/storeVariableServlet", 
     data: ({ 
      variable : $(variableName).val() 
     }), 
     success: function(){ 
      alert("Success"); 
     } 
    }); 

這裏是Servlet代碼:

String variableToBeStored = request.getParameter("variable"); 
    HttpSession session = request.getSession(); 
    session.setAttribute("variableXYZ", variableToBeStored);