JSP中,创建一个Bean 的时候,需要指定作用域
<jsp:useBean id="beanId" class="class.of.bean" scope="xxx" />
scope 取值范围有四个,从作用域大小来看,从大到小依次是:
application:
session:
request:
page:
许多初学者不容易理解的是request 和page 的区别
实际上,request 是通过 request.setAttribute/getAttribute 存取
而page 就可看成一个纯本地变量,出了当前 jsp文件,就不存在,当然对于<%@ include %> 中的页面也有效。
forward 后,request中的变量还是有效,而page的就无效了。
下面一段是在JSP中创建Bean时最终执行的源代码:
private void doSetAttribute(String name, Object o, int scope) { if (o != null) { switch (scope) { case PAGE_SCOPE: attributes.put(name, o); // HashMap<String, Object> attributes break; case REQUEST_SCOPE: request.setAttribute(name, o); //ServletRequest request break; case SESSION_SCOPE: if (session == null) { throw new IllegalStateException(Localizer .getMessage("jsp.error.page.noSession")); } session.setAttribute(name, o); //HttpSession session break; case APPLICATION_SCOPE: context.setAttribute(name, o); //ServletContext context break; default: throw new IllegalArgumentException("Invalid scope"); } } else { removeAttribute(name, scope); } }
相关推荐
JSP 中Spring Bean 的作用域详解 Bean元素有一个scope属性,用于定义Bean的作用域,该属性有如下五个值: 1>singleton: 单例模式,在整个spring IOC容器中,单例模式作用域的Bean都将只生成一个实例。一般Spring...
假设我们已经在请求作用域(request scope)中创建了`UserBean`,可以通过以下方式访问其属性: ```jsp ; charset=UTF-8" %> UserBean userBean = (UserBean) request.getAttribute("userBean"); %> 用户名: ...
上述代码会检查当前作用域(如 session)是否存在名为 "myBean" 的 JavaBean,如果不存在,则根据指定的类名 "com.example.MyBean" 创建一个新的实例。 ### 4. 设置 JavaBean 属性 ```jsp <jsp:setProperty name=...
JSP中的Bean可以有四种作用域:page、request、session和application。Page作用域的Bean仅在当前JSP页面有效,request作用域的Bean在一次HTTP请求中有效,session作用域的Bean在用户会话期间有效,而application...
这个"Jsp用jspbean的例子"提供了一个很好的学习机会,让我们深入理解它们的结合使用。 首先,JSP的核心理念是"视图-控制-模型"(MVC)架构模式。在这个模式中,JSP主要负责视图层的呈现,而Javabean则扮演了模型的...
这是更常见的方法,它会在指定的作用域内创建或查找Java Bean实例。例如: ```jsp <jsp:useBean id="myBean" class="your.package.YourBean" scope="session"/> ``` 这里的`id`属性定义了Bean的引用名称,`class`...
* scope 属性:指定了 Bean 的作用域,包括 page、session、request、application 四种。 * type 属性:指定了引用此对象的变量的类型。 * beanName 属性:指定了串行化 Bean 的名称。 jsp 标准动作提供了一种灵活...
- `<bean:scope>`:获取特定作用域内的Bean,如session或request。 4. **实际应用示例** - 在用户登录场景中,我们可以用`<bean:define>`来创建用户对象,然后用`<bean:write>`输出用户名和密码,`<bean:include>...
例如,`<jsp:useBean id="beanName" scope="session" class="package.Class" />`将bean置于session作用域,使得在同一个会话内的所有请求都能访问到同一bean实例。 总结,JavaBean组件在JSP中的应用主要涉及对象的...
根据给定的文件信息,我们可以深入探讨Bean标签库在JavaServer Pages (JSP) 和 Struts 框架中的应用及其重要性。 ### Bean标签库简介 Bean标签库是Struts框架的一部分,它提供了一系列用于操作JavaBeans的标签。...
### JSF Managed Beans知识点概述 ...合理利用Bean的不同作用域以及与JSF框架的紧密集成,能够显著提高应用程序的性能和可维护性。同时,参考提供的学习资源和实践案例,可以帮助初学者快速掌握这些关键技术点。
这里,`id`是JavaBean在JSP页面中的引用名,`class`是JavaBean的全限定类名,`scope`定义了JavaBean的作用域,如`page`、`request`、`session`或`application`。 3. **设置和获取属性值**:使用`jsp:setProperty`和...
这里的`id`属性是Bean的变量名,`scope`指定了Bean的作用域,而`class`属性则指定了JavaBean的完整类路径。 `<jsp:getProperty>`和`<jsp:setProperty>`则分别用于读取和设置JavaBean的属性值。例如,获取和设置`...
通过深入学习和理解bean标签的使用,你可以更高效地处理页面数据,并且能更好地控制JavaBean对象在不同作用域中的生命周期。在实际开发中,配合html标签和logic标签,可以实现更为复杂的页面逻辑,如条件判断、循环...
JSP页面中涉及到四种不同的作用域:page、request、session和application。 1. **page作用域** - **说明**: 只在当前页面有效。 - **示例**: 在当前页面中设置的属性只能在本页面访问。 2. **request作用域** -...
scope 属性用于设置 Bean 的作用域,可以是 page、request、session 或 application。 3. 在 JSP 中,表达式 <%=A+B%> 的输出结果是 A+B。 知识点:JSP 表达式用于在 JSP 页面中执行 Java 代码。表达式 <%=A+B%> ...
`id`属性定义了Bean的引用名,`class`属性指定了Bean的全限定类名,`scope`属性定义了Bean的作用域,可选值包括`page`, `request`, `session`, `application`。例如: ```jsp <jsp:useBean id="myBean" class=...
这里的`id`属性定义了JavaBean在页面作用域内的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用范围,可以是page、request、session或application。 当JSP遇到`<jsp:useBean>`...
<jsp:useBean id="idname" scope="bean的作用域" class="创建Bean的类名" /> ``` 这里的`idname`是Bean的标识符,`scope`指定了Bean的作用域,可以是`page`、`request`、`session`或`application`,分别对应不同的...