JSP的useBean动作指令-JSP页面加载过程与scope取值

Jsp的useBean动作标签的JSP页面加载过程

<jsp:useBean id="id_name" class="class_name" scope="[page|session|request|application]"/>

1.首先跟进id的名字,在一个同步块中查找JSP内置pageContent对象中是否有一个名字id和左右域scope的对象。
2.如果有这个对象存在,jsp引擎就分配一个这样的对象给用户,这样,用户就获得了一个作用域为scope,名字为id的bean。
3.如果在pageContent对象中没有查找到指定作用域,名字为id的对象,就根据class指定的类创建一个名字是id的对象,即创建一个名字是id的bean,并添加到pageContent内置对象中,并指定该bean的作用域是scope,同事jsp引擎分配给用户一个作用域是scope,名字是id的bean

@scope取值
page: jsp引擎分配给每个用户的bean是互不相同的,各占不同的内存空间,该bean的有效范围是当前页面,当客户离开这个页面,jsp引擎取消分配给该客户的bean
session:jsp引擎分配给每个用户的bean是互不相同的,该bean的有效作用域是客户访问的多个页面,即这几个页面都使用同一个bean。前提客户端支持cookie
request:jsp引擎分配给每个用户的bean是互不相同的,该bean的有效敢为是request期间。JSP引擎对请求做出响应之后,取消分配给用户的这个bean。
application:引擎只生成一个共享的bean,只有在服务器服务中断时被取消。
关于request与page的不同
可以看到有效作用域不同,还有request在响应请求后立即取消分配的bean

你可能感兴趣的:(bean,jsp)