严格区分JavaBean的生命周期

<jsp:useBean id=”myBean” scope=”page” class=”mypackage.CounterBean”>
在这种情况下,JavaBean对象的有效范围是客户请求访问的当前JSP网页,其生命周期在发生以下情况时结束:
1) 客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件;
2) 客户请求访问的当前JSP叶面执行完毕并向客户端发回响应
注:客户每次请求访问JSP文件时,都会创建一个JavaBean对象。
<jsp:useBean id=”myBean”scope=”request” class=”mypackage.CounterBean”>
这种情况下,JavaBean对象的有效范围是:
1) 客户请求访问的当前JSP网页;
2) 和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%@include%>指令以及<forward>标记包含的其他JSP文件;
注:客户每次请求访问JSP文件时,都会创建一个JavaBean对象。
<jsp:useBean id=”myBean”scope=”session” class=”mypackage.CounterBean”>
在这种情况下,JavaBean一旦被创建,他将存在于整个Session的生命周期内,同一个Session中的JSP文件共享这个JavaBean对象。
<jsp:useBean id=”myBean”scope=”application”class=”mypackage.CounterBean”>
JavaBean对象被创建后将存在于整个Web生命周期内。