2015-02-10 104 views
2
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,并且在此页面上还有另外一个属性,我必须将它传递给另一个页面。如何在JSP页面中获取JavaScript会话属性?

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

写作在我的JSP页面:

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

我得到null值。

+0

您必须通过表单或AJAX将其发送到Web服务器。 – meskobalazs 2015-02-10 07:17:07

+0

而且请不要在JSP页面中使用scriptlet,它是如此的90年代,而不是一个好方法:) – meskobalazs 2015-02-10 07:33:41

回答

1

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

你既可以把它们传递给服务器端,或再使用JavaScript显示它们的值,

sessionStorage.getItem('name'); 
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/> 
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请求中。如果你从现在开始在会话中需要它们,你可以把它们放进去。

相关问题