jsp_04JSP与JavaBean

本文详细介绍了JavaBean组件技术,包括JavaBean的定义、分类、规范以及简单属性。重点讲解了在JSP中使用JavaBean的`<jsp:useBean>`、`<jsp:setProperty>`和`<jsp:getProperty>`动作标记,并讨论了JavaBean在Web应用中的存放位置。最后,探讨了JSP Model 1架构的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. JavaBean组件技术

1.1JavaBean组件的定义

  • 组件是自包含的、可重用的软件单元,提供已知的功能,可与任何应用程序集成,便于随时重复使用,而且实现了跨体系结构和跨平台。
  • JavaBean技术就是Java中的组件技术,它是封装了属性和方法的类
  • JavaBean类似于一个黑匣子,只知道这个组件的功能和如何使用它,但不知道其内部如何实现。

1.2JavaBean组件的分类

从功能上,JavaBean组件可分为:

  • 可视化Bean:具有可视化表示,它接收用户的输入或点击并响应用户事件,如按钮、文本条等。
  • 非可视化Bean:完成特定功能的功能性组件,不能可视化,如定时器控件、拼写检查器、实现数据库连接的Bean

1.3JavaBean规范

JavaBean的书写规范主要包括:

  • JavaBean是一个public的类
  • 类要实现Serializable接口
  • 要有一个默认构造函数,以便任何一个容器都可以创建JavaBean的实例。
  • 存放属性的变量为protected或private特性
  • 设置和获取属性时,使**用setXXX()和getXXX()**方法。

1.3.1setXXX()和getXXX() 遵循的规范

  • 必须为public特性的方法。
  • 一般同一个属性的get方法和set方法成对使用,也可以单独使用。
  • get方法的名字必须是getXXX(),set方法的名字必须为setXXX(),其中XXX是第一个字母转换为大写的属性名。
  • get和set方法书写形式必须符合下面规定:
    public <属性类型> get<属性名>()
    get方法的返回类型必须与属性的数据类型一致且不能带参数。
    public void set <属性名>(< 属性类型> 参数名)
    set方法返回类型必须为void,且只能带一个和属性类型相同的参数。

1.4JavaBean的简单属性

  • 一般的,Bean有四种类型的属性:
    简单属性:是指对象内的private或protected成员变量,只能有一个单独的值,而不能有一组值。
    索引属性:表示一个数组值
    绑定属性(关联属性):该种属性的值发生变化时,要通知其它的对象
    受限属性
  • 只要符合上述Bean规范,开发工具就能够通过方法名称进行自检。

2. Bean的存放目录

在Web应用中,为了能找到JavaBean:

  • 不仅Bean的书写形式要符合JavaBean的书写规范。
  • Bean的存放位置也要符合J2EE的规范。
  • 总的来说,Bean都要放在相应Web应用的classes目录下。

2.1只供某个Web应用使用的Bean的存放位置

  • Bean的字节码文件需要存放在Tomcat安装目录的
    “…/webapps/Web应用目录/WEB-INF/classes”
  • 需要注意的是,如果以后Bean的源文件发生变化,classes目录下的Bean类文件并不能被更新,所以访问的可能不是最新的Bean。

2.2对任何web应用都可以使用的Bean的存放位置

  • Bean的字节码文件需要存放在Tomcat安装目录的classes目录下。
  • 需要注意的是,如果以后Bean的源文件发生变化,classes目录下的Bean类文件并不能被更新,所以访问的可能不是最新的Bean。

2.3只对ROOT目录可用的Bean的存放位置

  • Bean的字节码文件需要存放在Tomcat安装目录的
    …/webapps/ROOT/WEB-INF/classes

3. 在JSP中使用JavaBean

JSP规范对Bean提供的支持:

  • <jsp:useBean>:声明、创建JavaBean实例和初始化Bean
  • <jsp:setProperty>:设置bean属性值
  • <jsp:getProperty>:检索bean属件值

3.1useBean动作标记

  • 语法形式为:
<jsp:useBean id="beanInstanceName" scope="page|request|session|application"
class="packageName.className"
type="packageName.className"
beanName="packageName.className|<%= expression %>" >
         标记体
</jsp:useBean>
  • 可以为空标记形式

3.1.1useBean语法说明

  • id属性:指定Bean实例的标识符
    后面的程序中使用此变量名来分辨不同的Bean
    必须符合Java命名规则对标识符的规定
  • class属性:指出所使用的JavaBean的(类)文件路径和文件名(不带文件后缀)
  • type属性:指定Bean要强制类型转换的类型
  • beanName属性:指定串行化Bean的名字
  • scope属性:指定Bean存在的范围:
    page
    request
    session
    application

3.1.2scope属性说明

  • page:在包含<jsp:useBean>元素的jsp页面以及此文件中的所有静态包含文件中有效
  • request:在当前jsp页面和通过<jsp:forword>或<jsp:include>转向或包含的任意其他资源中有效
  • session:在任何使用相同session对象的jsp文件中有效
  • application:在任何使用相同application对象的jsp文件中有效

3.2getProperty动作标记

  • getProperty动作标记获得指定Bean属性的值,将其转换成字符串后输出到客户端
  • 语法形式为:
<jsp:getProperty name=“bean name” property=“property name”>
</jsp:getProperty>
  • 可以为空标记形式

3.3setProperty动作标记

  • <jsp:setProperty>动作标记可以修改Bean的属性值

  • 语法形式一:
    <jsp:setProperty name=“beanName” property=“属性名” value=“str |<%=表达式%>” />
    name属性:使用的Bean的id
    property属性:Bean要修改的属性名
    value属性:指定要设置的值

  • 语法形式二:
    <jsp:setproperty name=“bean名字” property=“*”>
    property属性表示被设置值的bean属性的名字。JSP引擎会扫描请求参数,找到和Bean属性名字匹配的请求参数,调用相应属性的set方法

4. JSP Model 1

在这里插入图片描述

  • JSP Model 1是以页面为中心的体系结构,用户通过浏览器访问一系列JSP页面。
  • JSP页面不仅提供显示输出,而且负责处理请求,并给客户端响应。
  • 使用Java Bean执行数据存取和业务逻辑,使表示与内容分离。

4.1JSP Model 1的优缺点

  • 优点:降低了页面与模型间的依赖性,实现了显示与内容分离,使页面制作和业务逻辑并行执行
  • 缺点:JSP既要作为视图负责提供表示层数据,又要充当控制器负责业务流程控制,因此仍然有大量的代码段嵌入JSP 页面中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值