为什么说session是服务器级别的,那么在JSP页面也可以取值呢?

之前学习到cookie是浏览器端,而session是服务器端,那么为什么用EL表达式可以取出session中的值呢?我知道这是JSP四大隐含对象:pageContext、request、session、application。那么这个和缓存技术中的cookie和session有什么区别呢?以及框架中的一级缓存session又是怎么一回事呢

EL表达式本来也是在服务器上运行的
jsp是服务器脚本
html才是客户端页面

jsp文件是属于服务端的,相当于servlet,当你通过tomcat等容器第一次访问jsp文件时,tomcat会将jsp转换为一个servlet,其中此servlet会以response.getWriter().print()的方式将html等前端代码发送给客户端。而在servlet中取session很正常吧。

先去理解什么是jsp 什么是HTML 在来研究Session与Cookie 不然你一直在雾里看花~

这就和你在JSP上能取到request对象一样,JSP本身执行时是会被服务器编译成服务端程序的,至于你所说的一级缓存session?mybatis还是hibernate?如果是的话,那此session与彼session就如同java与JavaScript了,完全是两个不同的东西

JSP全名为Java Server Pages,jsp是servlet分离的产物,也是服务器端代码,jsp编译后也是class文件

session就是客户端访问服务器的唯一标识,在客户端和服务器的一次完整的会话中session是不变的,所以可以用来记录一些你需要在本次会话中保存的一些信息,cookie是一种把信息保存在本地的一种方法,列如永久记录登录状态,hibernate的session就是对数据库操作的封装和数据缓存而已