`

jsp:useBean的用法

阅读更多

有几种用法,下面逐一讲解:

1》

<%@page import="MyBean.*"%>

<jsp:useBean class="MyBean.TestBean" id="user" scope="session"/>

 

生成的java代码如下:

MyBean.TestBean user = null;
      synchronized (session) {
        user = (MyBean.TestBean) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.SESSION_SCOPE);
        if (user == null){
          user = new MyBean.TestBean();
          _jspx_page_context.setAttribute("user", user, javax.servlet.jsp.PageContext.SESSION_SCOPE);
        }
      }

 

先从session范围内查找user属性是否存在,如果不存在,user = new MyBean.TestBean(),然后把user追加到session中。存在的话,啥也不做。

 

2》

<%@page import="MyBean.*"%>

<jsp:useBean type="BaseBean" class="MyBean.TestBean" id="user" scope="session"/>

 

生成的java代码如下:

BaseBean user = null;
      synchronized (session) {
        user = (BaseBean) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.SESSION_SCOPE);
        if (user == null){
          user = new MyBean.TestBean();
          _jspx_page_context.setAttribute("user", user, javax.servlet.jsp.PageContext.SESSION_SCOPE);
        }
      }

 BaseBean是TestBean的父类。

除了user的类型是BaseBean,其它的处理逻辑和1》相同。

 

3》

<%@page import="MyBean.*"%>

<jsp:useBean type="MyBean.BaseBean" beanName="MyBean.TestBean" id="user" scope="session"/>

 

生成的java代码如下:

MyBean.BaseBean user = null;
      synchronized (session) {
        user = (MyBean.BaseBean) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.SESSION_SCOPE);
        if (user == null){
          try {
            user = (MyBean.BaseBean) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "MyBean.TestBean");
          } catch (java.lang.ClassNotFoundException exc) {
            throw new InstantiationException(exc.getMessage());
          } catch (java.lang.Exception exc) {
            throw new javax.servlet.ServletException("Cannot create bean of class " + "MyBean.TestBean", exc);
          }
          _jspx_page_context.setAttribute("user", user, javax.servlet.jsp.PageContext.SESSION_SCOPE);
        }
      }

 

和2》的区别如下:
1>不使用new关键字进行创建,而是使用Beans.instantiate来加载并实例化对象
2>对象创建完以后进行了强制类型转换(MyBean.BaseBean)
4》
<%@page import="MyBean.*"%>
<jsp:useBean type="MyBean.BaseBean" id="user" scope="session"/>

生成的java代码如下:

MyBean.BaseBean user = null;
      synchronized (session) {
        user = (MyBean.BaseBean) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.SESSION_SCOPE);
        if (user == null){
          throw new java.lang.InstantiationException("bean user not found within scope");
        }
      }

 

先从session范围内查找user属性,如果不存在就直接抛出异常,存在的话直接引用。
分享到:
评论

相关推荐

    Jsp:useBean中字符串转化为Date类型的操作方法

    4. 在JSP页面中,你可以使用`&lt;jsp:setProperty&gt;`来调用`setDateFromStr()`方法: ```jsp &lt;jsp:useBean id="myBean" class="com.example.MyBean" /&gt; &lt;jsp:setProperty name="myBean" property="dateFromStr" value="$...

    JSP useBean连接 Access 数据库,不使用数据源

    这个类可能包含如下的方法: 1. `getConnection()`: 这个方法使用JDBC API来建立与Access数据库的连接。由于Access使用的是Jet Engine,所以驱动程序应该是`sun.jdbc.odbc.JdbcOdbcDriver`。我们需要在类中注册这个...

    jsp事例jsp usebean session

    在JavaServer Pages (JSP) 技术中,`useBean` 指令和 `session` 对象是两个核心概念,它们对于构建动态、数据驱动的Web应用程序至关重要。在这个事例中,我们将深入探讨如何在JSP中利用 `useBean` 指令创建并管理...

    Java Web程序设计任务驱动教程课后习题参考答案 - 蓝敏、周伟敏、杨茜

    * 使用 response 对象进行重定向的方法:sendRedirect * session 对象中用于设定指定名字的属性值,并且把它存储在 session 对象中的方法:setAttribute * JSP 九大主要内置对象:out、page、request、response、...

    Java开发与设计教程

    - 提供属性的存取方法:`getXxx()` 和 `setXxx(...)` 方法。 - 不应有公共实例变量。 - 实现 `Serializable` 接口,以支持序列化。 - **JavaBeans 的作用**: - 主要用于存储数据。 - 区别于 Enterprise ...

    JSP+UseBean网上购书系统

    1. **JavaBeans的使用**:在JSP页面中,`&lt;jsp:useBean&gt;`标签首先会查找在指定作用域(如page、request、session或application)中是否存在指定类型的JavaBean。如果不存在,它会根据类名创建一个新的实例,并将其放...

    学生管理系,jsp+javabean编写,功能强大

    【学生管理系统】是一个基于Web的应用程序,主要使用Java技术栈中的JSP(JavaServer Pages)和JavaBean来实现。这个系统旨在提供一个高效、便捷的方式来管理和维护学生的信息,包括但不限于学生的个人信息、成绩、...

    javabean教程[2]

    它通常与`&lt;jsp:useBean&gt;`配合使用,以便在JSP页面中为JavaBean的属性赋值。例如: ```jsp &lt;jsp:setProperty name="myBean" property="propertyName" value="value" /&gt; ``` 这里的`name`属性是JavaBean的ID,`...

    jsp表单的FORM传值

    在jsp中,使用&lt;jsp:useBean&gt;动作来使用javaBean,javaBean是一种特殊的java类,可以将java处理代码从jsp页面中分离,使得jsp页面变得更加简洁。 使用&lt;jsp:useBean&gt;动作可以定位或实例化一个javaBean组件,例如:...

    javaBean标签(了解)1

    JavaBean标签是JavaServer Pages (JSP) 中用于操作Java对象的一种简化方法,它使得在JSP页面中创建、初始化和操纵JavaBean组件变得更为简便。在这个例子中,我们看到两个`jsp:useBean`标签,它们分别用来实例化一个...

    关于JSP标准动作实例

    通常与 `&lt;jsp:useBean&gt;` 结合使用,用于初始化或更新JavaBean的属性。 示例: ```jsp &lt;jsp:setProperty name="myBean" property="name" param="userName"/&gt; ``` 在实际应用中,JSP标准动作可以显著提高代码的...

    JSP程序设计考试试题与答案.docx

    使用&lt;jsp:forward&gt;指令可以将请求转发给其他 JSP 页面,而使用sendRedirect 方法可以将请求重定向给其他 URL。 三、Servlet 和 Session 1. Servlet:Servlet 是一种特殊的 Java 程序,用于处理客户端的请求。...

    jsp源码 javaben servlet

    在JSP页面中,可以使用`&lt;jsp:useBean&gt;`标签来实例化和查找JavaBean。如果JavaBean尚未在作用域内创建,`&lt;jsp:useBean&gt;`会尝试根据指定的类名创建一个新的JavaBean实例。然后,我们可以通过`jsp:setProperty`标签将...

    jsp动作jsp动作jsp动作jsp动作jsp动作jsp动作

    通常与`&lt;jsp:useBean&gt;`配合使用,用于初始化JavaBean的属性或者从表单数据中读取值。 - `&lt;jsp:include&gt;`:将另一个资源(如HTML、JSP或Servlet)包含到当前页面中,支持动态包含,即包含的内容可以根据请求的不同...

    jsp+servlet+usebean实现MVC

    - **使用UseBean指令**:在JSP页面中,我们可以使用`&lt;jsp:useBean&gt;`指令实例化和查找模型对象。如果模型对象已在请求或会话范围内存在,那么`&lt;jsp:useBean&gt;`会找到并使用;否则,它会尝试创建新的对象。例如: ```...

    JSP 应用程序开发指南

    JSP可以与EJB协同工作,通过`&lt;jsp:useBean&gt;`和`&lt;jsp:setProperty&gt;`动作调用EJB方法,处理业务逻辑。EJB分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)...

    JSP 标准动作的WORD文档

    在本篇文档中,我们将深入探讨JSP标准动作,特别是其中的`&lt;jsp:useBean&gt;`、`&lt;jsp:setProperty&gt;`、`&lt;jsp:getProperty&gt;`、`&lt;jsp:include&gt;`和`&lt;jsp:forward&gt;`。这些动作是JSP中用于处理JavaBean和页面交互的关键元素,...

    JSP应用开发-房屋信息查询.pptx

    - JavaBean的使用,包括设计规范和与之相关的JSP动作标记`jsp:useBean`,`jsp:setProperty`,`jsp:getProperty`。 - JSP中数据的传递和处理流程,从用户输入到数据库查询再到结果展示。 - JavaBean如何封装业务逻辑...

    JSP教材JSP语法

    - 使用`&lt;jsp:getProperty&gt;`之前需要先使用`&lt;jsp:useBean&gt;`标签创建Bean实例。 - 确保Bean类中提供了正确的getter方法以获取属性值。 - 如果Bean中的属性未设置或不存在,可能需要进行适当的异常处理。 总结来说...

    简单介绍所有标签和EL表达式

    本文将重点介绍三个常用的Action Elements:`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`, `&lt;jsp:getProperty&gt;`,以及`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`和`&lt;jsp:plugin&gt;`。 1. `&lt;jsp:useBean&gt;` `&lt;jsp:...

Global site tag (gtag.js) - Google Analytics