我有2页的JSP文件,在第一个JSP中我将这些行包含在我的javascript函数中。如何在scriplet中检索 localstorage 项?非常感谢任何帮助,谢谢你提前。
localStorage.setItem("surveyDescription", surveyDescription);
window.location = 'Page2.jsp';
答案 0 :(得分:1)
从应用程序的特定位置使用的JSP对象的可用性被定义为该JSP对象的范围。在JSP页面中创建的每个对象都有一个范围。 JSP中的对象范围分为四部分,它们是页面,请求,会话和应用程序。
'page'范围意味着,JSP对象只能从创建它的同一页面中的访问。使用<jsp:useBean>
标记创建的JSP对象的默认范围是page。
JSP implicit objects out
,exception
,response
,pageContext
,config
和page
有'page'范围。
从Oracle Official Document - Object Scopes了解更多内容:
有四种可能的范围:
page
- 只能从创建它的JSP页面中访问该对象。请注意,当用户在执行JSP页面时刷新页面时,将创建所有页面范围对象的新实例。
request
- 可以从为创建对象的JSP页面提供服务的同一HTTP请求的任何JSP页面访问该对象。
session
- 可以从与创建对象的JSP页面共享相同HTTP会话的任何JSP页面访问该对象。
application
- 可以从与创建对象的JSP页面相同的Web应用程序(在任何单个Java虚拟机中)中使用的任何JSP页面访问该对象。
现在根据您的需要选择任何一种。如果您正在讨论2个JSP页面,那么请选择session
范围,因为请求不会从一个JSP转发或包含在另一个JSP中。
只需在implicit object setAttribute(key,value)
,page
,request
和session
上调用application
方法即可在任何范围内设置属性并获取使用同一范围内的getAttribute(key)
返回值。
注意:始终尝试避免使用 Scriplet ,而是使用JavaServer Pages Standard Tag Library和Expression Language。