a:pageContext、cookie、session、appliation均是内置对象,他们可以调用共同的方法:
Object getAttritube(String name);
void setAttribute(String name,Object value);
void removeAttribute(String name);
b:四种对象的范围
pageContext、cookie、session、appliation的范围对象从小到大的增长。
1、pageContext:仅仅在当前的页面有效
2、cookie:仅仅是对于一次请求有效
也就是说,请求转发有效,重定向无效
这里我们可以从请求转发和重新的原理上理解一番
请求转发:客户端向服务端发送一个请求,这个页面请求转发,就在服务端内部自动转发出去了。不用我们的服务端再一次发送请求。
重定向:客户端向服务端发送请求,需要再一次打开页面的时候。就需要我们的服务端再一次发送请求,寻找这个新的页面。
另类理解:我们去银行办理业务,假如取款窗口和存款窗口分开的。而我们的业务是需要先取款在存款。第一次你先去的是 取款窗口,如果银行人员内部就立马把你的业务转向了存款窗口,这就叫做请求转发。一次排队,两个业务都完成了。但是如果你先去了取款窗口,发现还需要去存款窗口办理业务。这急速需要两次排队,两次办理业务,这就叫做重定向。
3、session:仅仅对于一次会话有效
也就是说,请求转发,重定向均有效。
同一个浏览器打开多个页面是有效的,打开其他页面就无效
4、appliation:对于一个项目内部均有效,这就是相当于一个全局变量。