Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问存储为数组的会话名称?_Javascript_Jsp_Session_Jakarta Ee_Servlets - Fatal编程技术网

Javascript 如何访问存储为数组的会话名称?

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

在我的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("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