客户端在第一次请求服务端时,如果发现此请求没有JSESSIONID,则会创建一个拥有JSESSIONID的cookie,并返回给客户端。
cookie:不是内置对象,要使用必须new,但是服务端会总动生成一个name=JSESSION的cookie并返回给客户端
四种范围对象(小到大)
pageContext JSP页面容器 (page对象):当前页面有效
request 请求对象 同一次请求有效
session 会话对象 同一次会话有效
application 全局对象
以上4个对象共有的方法;
Object getAttribute(String name):根据属性名,或者属性值
void setAttribute(String name,Object obj):设置属性值(新增,修改)
setAttribute(“a”,“b”); 如果a对象之前不存在,则新建一个a对象;
如果a对象之前已经存在,则将a的值改为b。
void removeAttribute(String name):根据属性名,删除对象
a.
pageContext 当前页面有效(跳转后无效)
request.setAttribute()
b.
request 同一次请求有效 其他请求无效(请求转发后有效,重定向后无效)
c.
session 同一次会话有效 (无论怎么跳转,只要不关浏览器或切换浏览器后无效;登录->退出之间全部有效)
d.
applicaion
全局变量:整个项目运行期间都有效(切换浏览器 仍然有效);关闭服务或其他项目均无法访问
多个项目共享、重启后仍然有效:JNDI
1.以上四个人范围对象,通过setAttribute()复制,通过getAttribute()取值
2.以上范围对象,尽量使用最小的范围。因为对象的范围越大,造成的性能损耗越大。