Javascript 如何访问存储为数组的会话名称?
在我的servlet中,我存储了会话变量,如下所示:Javascript 如何访问存储为数组的会话名称?,javascript,jsp,session,jakarta-ee,servlets,Javascript,Jsp,Session,Jakarta Ee,Servlets,在我的servlet中,我存储了会话变量,如下所示: for(int i=0;i>pageNames.length;i++) { session.setAttribute("pageNames["+i+"]",pageNames[i]); } for(var i=0;i<10;i++) { var pageNames = '<%=session.getAttribute("p
for(int i=0;i>pageNames.length;i++) {
session.setAttribute("pageNames["+i+"]",pageNames[i]);
}
for(var i=0;i<10;i++) {
var pageNames = '<%=session.getAttribute("pageNames["+i+"]")%>';
alert(pageNames);
}
现在,我从JSP页面创建了一个javascript函数,如下所示
for(int i=0;i>pageNames.length;i++) {
session.setAttribute("pageNames["+i+"]",pageNames[i]);
}
for(var i=0;i<10;i++) {
var pageNames = '<%=session.getAttribute("pageNames["+i+"]")%>';
alert(pageNames);
}
for(var i=0;i由于声誉不好,我无法对你的帖子发表评论,因此我写这篇文章
会话用于在服务器上存储与用户相关的数据,以便我们的服务器能够记住用户。JSP是客户端,因此会话在那里不可用
您为什么不在java页面中使用request.setAttribute,并使用request.getAttribute方法在JSP上访问它。您混合了两个世界——javascript和JSP。JSP和您的javascript代码必须首先翻译成java servlet。但是java servlet不知道javascript循环。JSP在java页面之前被解释可以识别vascript,因此不能使用循环变量i
我的建议是,首先从JSP中准备一个页面名称数组,然后用javascript对其进行迭代
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<script>
var pageNames = new Array(
<c:forEach var="i" begin="1" end="10" varStatus="status">
<c:set var="pageIndex">pageNames[${i}]</c:forEach>
"${sessionScope[pageIndex]}"
<c:if test="${!status.last}" >, </c:if>
</c:forEach>);
for(var i=0;i<pageNames.length;i++) {
alert(pageNames[i]);
}
</script>
var pageNames=新数组(
页面名称[${i}]
“${sessionScope[pageIndex]}”
,
);
对于(var i=0;i