如何在 JSP 页面中获取 JavaScript 会话属性
How to get a JavaScript session attribute in a JSP page?
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
价值。
sessionStorage
与浏览器和变量name
有关,mob
是在客户端而不是在请求中设置的。
你可以将它们传递给服务器端,或者再次使用javascript显示它们的值,
sessionStorage.getItem('name');
JS sessionStorage
和JSP session
是不一样的。
如果您提交了带有名称和移动号码的 html 表单,那么这将可以:
提交.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>
确认.jsp
Name: ${param.name}<br/>
Mobile: ${param.number}<br/>
您可以在
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 请求中。如果从现在开始在会话中需要它们,则可以将它们放入其中。
相关文章:
- 从ajax请求中获取javascript对象
- 以同步方式获取Javascript Promise的值
- 获取javascript中的公钥格式
- 获取javascript函数中的按钮名称
- 如何在C#中获取Javascript变量值
- 从其名称获取javascript数组对象
- 如何从Selenium获取JavaScript值
- 如何获取javascript输入并在html中调用它
- 获取javascript函数中另一个javascript函数的响应
- 获取javascript中输入元素的索引
- 获取javascript中json_encoded数组的元素
- 在ajax请求中使用jquery获取javascript响应UJS
- 获取Javascript中单选按钮的true或false
- 获取javascript中的元数据属性
- 获取Javascript中DOM元素的screenX
- 如何在事件处理程序中获取 javascript 事件对象
- 使用 JQuery 从表单中获取 javascript 多维数组
- 获取 JavaScript 中复选框的值
- 如何从函数名称中获取JavaScript的源代码
- VBA中有没有一种方法可以获取javascript生成的元素