Servlet作用域从小到大是这样排列的,page,request,session,pageContext。
page只是作用于当前请求的页面
request是一次请求,根据HTTP无状态,所以可以知道每一次请求对象是不同的。
session是一次会话,比如有些网站需要登录后才能查看资源,从登录到你关闭浏览器后,这就是一次会话,session是存在服务端的。还有一种情况,有时你在一个网页上长时间没操作,再操作会让你重新登录,这也是session的问题,服务器那边设置了session失效的时间。
pageContext是在整个Web应用上都是有效的,可以理解为所有的网页,因为这个对象是常常用来共享资源的,也就是用户1提交了一个资源,放到了pageContext作用域中,其它用户也可以看到这个资源。
就好比我在jsp页面中想在session里面获取一个对象要放到pageContext里面
<%
Object roleCode = session.getAttribute("roleCode");
pageContext.setAttribute("roleCode",roleCode);
%>
然后其他的页面通过${roleCode}获取这个值