jsp的useBean作用域问题

来源:互联网 发布:linux编辑保存命令 编辑:程序博客网 时间:2024/05/16 03:07

page:能够在包含<jsp:useBean>标签的JSP文件以及此文件中的所有静态包含文件中使用Bean,知道页面执行完毕向客户端发回响应或转到另一个文件为止。也就是说只存在于你当前的网页。
request:在请求的范围内使用有效。
session:从创建Bean开始,就可以在session有效范围内使用这个Bean,这个Bean对于JSP来说是共享的。
application:同session一样,从创建Bean开始就可以在任何使用相同application的JSP文件中使用Bean。
补充一下属性用法:
id 命名引用该Bean的变量。如果能够找到id和scope相同的Bean实例,jsp:useBean动作将使用已有的Bean实例而不是创建新的实例。
class 指定Bean的完整包名。
scope 指定Bean在哪种上下文内可用,可以取下面的四个值之一:page,request,session和application。
默认值是page,表示该Bean只在当前页面内可用(保存在当前页面的PageContext内)。
request表示该Bean在当前的客户请求内有效(保存在ServletRequest对象内)。
session表示该Bean对当前HttpSession内的所有页面都有效。
最后,如果取值application,则表示该Bean对所有具有相同ServletContext的页面都有效。
scope之所以很重要,是因为jsp:useBean只有在不存在具有相同id和scope的对象时才会实例化新的对象;如果已有id和scope都相同的对象则直接使用已有的对象,此时jsp:useBean开始标记和结束标记之间的任何内容都将被忽略。
type 指定引用该对象的变量的类型,它必须是Bean类的名字、超类名字、该类所实现的接口名字之一。请记住变量的名字是由id属性指定的。
beanName 指定Bean的名字。如果提供了type属性和beanName属性,允许省略class属性。
scope之所以很重要,是因为jsp:useBean只有在不存在具有相同id和scope的对象时才会实例化新的对象;如果已有id和scope都相同的对象则直接使用已有的对象,此时jsp:useBean开始标记和结束标记之间的任何内容都将被忽略。   

0 0
原创粉丝点击