如何在JSP页面中获取JavaScript会话属性?

时间:2015-02-10 07:13:12

标签: javascript jsp session

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

3 个答案:

答案 0 :(得分:1)

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

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

  sessionStorage.getItem('name');

答案 1 :(得分:0)

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/>

答案 2 :(得分:0)

您可以在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请求中。如果从现在开始你需要在会​​话中使用它们,你可以将它们放入其中。