【问题标题】:How to get a JavaScript session attribute in a JSP page?如何在 JSP 页面中获取 JavaScript 会话属性?
【发布时间】:2015-02-10 15:32:28
【问题描述】:
function submit() {
    var name = document.getElementById('name').value;
    var mob = document.getElementById('number').value;

    sessionStorage.setItem("name", name);
    sessionStorage.setItem("mob", mob);
    document.getElementById("leadForm").action = "/confirm";
    document.leadForm.submit();
}

在确认页面上,我的 JSP 被调用,我想打印这个在会话中传递的 namemob,以及在此页面上选择的另一个属性,我必须将它传递给另一个页面。

我不确定如何将会话值从 JavaScript 获取到 JSP。

在我的 JSP 页面中编写:

String name = (String) session.getAttribute("name");
out.println(name);

我得到了null 的价值。

【问题讨论】:

  • 您必须通过表单或 AJAX 将其发送到 Web 服务器。
  • 请不要在 JSP 页面中使用 scriptlet,它是 90 年代的,而且不是很好的方式 :)

标签: javascript jsp session


【解决方案1】:

sessionStorage与浏览器相关,变量namemob设置在客户端而不是请求中。

您可以将它们传递到服务器端,或者再次使用 javascript 显示它们的值,

  sessionStorage.getItem('name');

【讨论】:

    【解决方案2】:

    JS sessionStorage 和 JSP session 不一样。

    如果您提交了带有姓名和手机号码的 html 表单,那么这将是:

    submit.jsp

    <form action='confirm.jsp'>
       Name: <input type='text' name='name'/><br/>
       Mobile No: <input type='text' name='number'/><br/>
       <input type='submit' value='Submit'/>
    </form>
    

    confirm.jsp

    Name: ${param.name}<br/>
    Mobile: ${param.number}<br/>
    

    【讨论】:

      【解决方案3】:

      您可以在leadForm 中为这些变量创建隐藏字段。

      <form name="leadForm" method="post" action="/confirm">
          <input type="hidden" name="name"/>
          <input type="hidden" name="mob"/>
          ...
      </form>
      

      然后您可以在#input() 函数中将它们设置为:

      document.leadForm.name.value = name;
      document.leadForm.mob.value = mob;
      

      现在,如果您发布表单,您可以使用这些值:

      String name = (String) request.getParameter("name");
      String mob = (String) request.getParameter("mob");
      

      它们不会出现在会话中,因为会话是服务器端的概念(请记住,HTTP 是无状态的),但它们会出现在 HTTP 请求中。如果您以后在会话中需要它们,可以将它们放入其中。

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 2017-09-14
        • 1970-01-01
        • 2017-03-06
        • 2013-06-08
        • 2019-04-02
        • 2017-04-05
        • 2014-10-26
        • 1970-01-01
        相关资源
        最近更新 更多