2011-04-07 80 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);