JS不可以读取Session域内的值, Session是会话周期域, 是服务端上同一个客户端一次会话请求的容器。JS是运行在浏览器上的, 无法直接访问session。
如果你想服务端存的值客户端直接访问, 可以考虑用cookies存储,如果非要用session存储可以在页面上用隐藏的input控件存储该值, 然后用js读取,或用Ajax请求获取后台session中的值。
session是服务器对象,javascript是客户端脚本,能做的操作就是把这个值用<%=%>输出到页面的javascript中参与运算,而无法直接用js调用的。具体的应用一般都是这样:
<script>
function do(){
var a='<%=session.getAttribute("userName")%>'
//或者用var a="${sessionScope.userName}"
}
</script>
此方法在静态页面中不可用,在javascript文件下不可用,用于jsp页面中嵌套的脚本中。
jsp获取action传来的session值问题,有以下几种方法:比如action中有个session ("sessionid","11111111");
一、用struts标签获取:<s:property value="#session.sessionid"/>;
二、<%=request.getSession.getAttribute("sessionid")>session也是内置对象之一,可以直接用session,比request.getSession方便多了,也可以写成<%=session.getAttribute("sessionid")>;
三、el表达式获取:${sessionScope.sessionid};
如果赋值的是个bean,也是一样的,类似于${sessionScope.bean.beansth}。