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,我希望打印在会话中传递的name
和mob
,并且在此页面上再选择一个属性,我必须把它传递到另一页。
我不确定如何从JavaScript到JSP获取会话值。
在我的JSP页面中写作:
String name = (String) session.getAttribute("name");
out.println(name);
我的价值为null
。
答案 0 :(得分:1)
sessionStorage
与浏览器相关,变量name
,mob
在客户端设置,不在请求中。
您可以将它们传递到服务器端,或者再次使用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请求中。如果从现在开始你需要在会话中使用它们,你可以将它们放入其中。