将变量从一个jsp发送到另一个jsp

我有一个JSP文件作为jsp 1.jsp ,另一个JSP文件作为jsp 2.jsp

我使用jsp 1.jsp中包含了jsp 2.jsp

现在我需要一些元素上的click事件。 在那个事件上,我想将一个字符串变量传递给包含的jsp。

让我说我有一个列表,点击它我想将列表的名称转移到另一个JSP,

在另一个JSP中,我试图使用该字符串来执行某些任务。

我正在做所有这些没有任何servlet。 挑战一个!! 我已经google了很多,但没有找到任何东西。

您有很多选择:

  1. 将其存储在会话中。

     // Memorise any passed in user. String username = request.getParameter("username"); if (username != null && username.length() > 0) { session.setAttribute("username", username); } 
  2. 将其存储为表单中的隐藏字段。

      
  3. 将其存储在cookie中。

     username = getCookie(userCookieName); // Get from cookie. function getCookie(name) { if (document.cookie) { index = document.cookie.indexOf(name); if (index !== -1) { f = (document.cookie.indexOf("=", index) + 1); t = document.cookie.indexOf(";", index); if (t === -1) { t = document.cookie.length; } return(document.cookie.substring(f, t)); } } return (""); } 
  4. 在sessionStorage中将其保留在客户端。 详情请见此处 。

     sessionStorage.setItem("username", "..."); 
  5. 不是另一种选择,而是一种机制 – 在URL中传递它:

     .... onclick="window.location='details.jsp?username=...' 

如果在jsp 1包含jsp 2的原因是发送变量,则not needed 。 你只需要在jsp 1设置一个hidden变量,在你的jsp 2你应该能够通过使用jsp implicit request对象来访问它。

尝试使用Ajax with JQuery来实现您的目标,或者您只需将String对象存储在session并且可以在使用它时在jsp2.jsp中将其删除。 或者你可以简单地追加到一个url作为query string其中有多种方式,以上几种。

这些问题可能对您有帮助

问题1

问题2

问题3

问题4

在jsp1中使用这种方式传递值。

 

在jsp2中获取价值

 String value=request.getParameter("hidden"); 

你可以设置一个jsp:param ,就像这个例子中的jsp:param元素一样,或者看一下这个类似的post在JSP页面之间传递参数 。