在Java程序或JSP程序中,其实有很多的代码段是可以重复使用的,比如对数据库的操作、用户的有效性检查及某些项特定功能的实现等。为了很好的解决这个问题,提高开发效率,Sun公司推出了JavaBean,简言之,JavaBean这是一个实现了某个功能且供重复使用的Java类。 在JSP中使用JavaBean后,可实现HTML与Java代码的分离,使JSP更易于开发和维护。因此JavaBean成了JSP程序员的必备利器之一。另外,javaBean与javaBeans是同一个概念。

JavaBean定义:是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。

JavaBean规范:

(a)有一个公有的无参构造器

(b)属性可以通过getsetis(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问

(c)可序列化

JavaBean代码:

 1 package player;
 2
 3 public class PersonBean implements java.io.Serializable {
 4
 5     /**
 6      * name 属性(注意大小写)
 7      */
 8     private String name = null;
 9
10     private boolean deceased = false;
11
12     /** 无参构造器(没有参数) */
13     public PersonBean() {
14     }
15
16     /**
17      * name 属性的Getter方法
18      */
19     public String getName() {
20         return name;
21     }
22
23     /**
24      * name 属性的Setter方法
25      * @param value
26      */
27     public void setName(final String value) {
28         name = value;
29     }
30
31     /**
32      * deceased 属性的Getter方法
33      * 布尔型属性的Getter方法的不同形式(这里使用了is而非get)
34      */
35     public boolean isDeceased() {
36         return deceased;
37     }
38
39     /**
40      * deceased 属性的Setter方法
41      * @param value
42      */
43     public void setDeceased(final boolean value) {
44         deceased = value;
45     }
46 }

在Java类中使用JavaBean的代码:

 1 import player.PersonBean;
 2
 3 /**
 4  * <code>TestPersonBean</code>类
 5  */
 6 public class TestPersonBean {
 7     /**
 8      * PersonBean 类测试方法的main函数
 9      * @param ARGS
10      */
11     public static void main(String[] args) {
12         PersonBean person = new PersonBean();
13
14         person.setName("张三");
15         person.setDeceased(false);
16
17         // 输出: "张三[活着]"
18         System.out.print(person.getName());
19         System.out.println(person.isDeceased() ? " [已故]" : " [活着]");
20     }
21 }

在Jsp中使用JavaBean的两种使用方式:

(a) jsp 中嵌入 java 代码方式访问 javabean

<%@ page import="player.PersonBean" %>
<% TestPersonBean testBean=new TestPersonBean(); %>
<% String name=req.getParameter(“name”);%>
<% testBean.setName(name)%>
<%=testBean.getName()%>

(b) jsp 中使用 <jsp:useBean> 标记符访问 javabean

<jsp:useBean id="person" class="player.PersonBean" scope="page"/>
<jsp:setProperty name="person" property="*"/><html><body>姓名:<jsp:getProperty name="person" property="name"/><br/>已故与否?<jsp:getProperty name="person" property="deceased"/><br/><br/><form name="beanTest" method="POST" action="testPersonBean.jsp">输入姓名:<input type="text" name="name" size="50"><br/>选择选项:<select name="deceased"><option value="false">活着</option><option value="true">已故</option></select><input type="submit" value="测试这个JavaBean"></form></body>
</html>

<jsp:useBean>标签可以在JSP中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。<jsp:useBean>标签的语法格式如下:

<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>

在<jsp:useBean>标签主体中使用<jsp:getProperty/>标签来调用getter方法,使用<jsp:setProperty/>标签来调用setter方法,语法格式如下:

<jsp:useBean id="id" class="bean's class" scope="bean's scope"><jsp:setProperty name="bean's id" property="property name"  value="value"/><jsp:getProperty name="bean's id" property="property name"/>...........
</jsp:useBean>

name属性指的是Bean的id属性。property属性指的是想要调用的getter或setter方法。

Jsp程序中使用JavaBean的scope属性:

(a)当scope=application时,我们浏览date.jsp,这时显示出了系统时间。可是不管我们怎么刷新,重新打开一次浏览器,甚至换台机器,它显示的时间始终不变,都是当初的时间(即bean刚创建时得到的系统时间),因为scope=application,所以Bean的实例在内存中只有一份,此时只要不重新启动WEB服务,输出不会变化。

(b)当scope=session时,浏览date.jsp,刷新时显示也不会变化。可是当我们重新打开一浏览器,即一个新的session,系统便再次创建Bean的实例,取得当前系统时间,这时将得到正确的时间。同样,再次刷新新打开的页面(新的session),显示也不会变化。

(c)当scope=page/request(它们的区别只在于包含静态文件时,此处无区别)时,不断刷新页面将不断得到当前系统时间。

转载于:https://www.cnblogs.com/caoxinyi/p/4250247.html

JSP技术之JavaBean相关推荐

  1. javabean反射改字段内容_JSP第三篇「JavaBean的介绍、JSP的行为--JavaBean」(修订版)...

    什么是javaBean JavaBean就是一个普通的java类,也称之为简单java对象--POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种 ...

  2. 在JSP中使用JavaBean

    JavaBean与Jsp.在JSP中使用JavaBean(<jsp:useBean>标签.<jsp:setProperty>标签.<jsp:getProperty> ...

  3. JSP技术的发展趋势

    JSP技术主要用来简化动态网页的开发过程,由于它在形式上和html文档比较相似,因此与Servlet相比,用JSP来编写动态网页更加直观. 但是,当网页非常复杂时,JSP文件中的大量的html标记和j ...

  4. JSP 技术(一)--简述

    在动态web项目的开发中,经常需要动态生成HTML内容(如系统中的当前在线人数需要动态生成).如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句.同时,如果静态内容和动态内容混 ...

  5. Servlet笔记四(JSP技术)

    本栏博客目录 Serlvet笔记一(Servlet基础) Servlet笔记二(请求和响应) Servlet笔记三(会话及其会话技术) Servlet笔记四(JSP技术) Servlet笔记五(EL表 ...

  6. 基于JSP技术的学生网上选课系统的设计与实现

    摘   要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生选课系统作为一种现代化的教学技术,已越来越受到人们的重视, ...

  7. 基于JSP技术进行信息交互的研究与应用

    首页 | 最新栏目 | 关于我们 | 读者园地 | 联系我们 基于JSP技术进行信息交互的研究与应用       摘  要  从信息交互的方式着手,结合开发项目中遇到的实际问题,本文总体上将JSP动态 ...

  8. 基于JSP技术的猎头公司管理软件的设计和实现——内部事务部分(源代码+论文)

    分类号:TP315 U D C:D10621-408-(2007)5978-0 密 级:公 开 编 号:2003031227 成都信息工程学院 学位论文 基于JSP技术的猎头公司管理软件的设计和实现 ...

  9. Java Web中的jsp技术

    在动态网页开发中,经常需要动态生成html内容,如果使用servlet来实现html页面数据的改变会导致程序十分臃肿.为了克服这些缺点,Oracle(Sun)公司推出了jsp技术. JSP全名是Jav ...

最新文章

  1. 桑叶黑芝麻糊,从头到脚通补
  2. 蚂蚁森林合种计划(2020.12.12,7天有效,每周6更新)
  3. 三班的孩子们,你们现在还好吗?
  4. 新功能:在负载均衡SLB控制台上查看DDoS安全防护阈值
  5. Hadoop(HDFS,YARN)的HA集群安装
  6. android8.0于与ios,android 8.0 oreo抄袭苹果吗 android oreo和ios 11对比
  7. 互联网创业是没有什么好计划的
  8. L2-039 清点代码库 (25 分)-PAT 团体程序设计天梯赛 GPLT
  9. 内核kconfig语法及原理
  10. C#使用QQ邮箱发送邮件
  11. VSS2005安装和配置过程中遇到的问题
  12. sql获取当前月一号
  13. MySQL的JDBC驱动8.0配置
  14. Android模拟器使用SD卡(2)
  15. Windows Server 2008 R2 远程管理
  16. 数据库SQL 某字段按首字母排序
  17. Win10便签删除了怎么恢复?便签删除了的恢复方法
  18. sip 信令组成的基本格式 总结
  19. 函数平移口诀_二次函数平移规律口诀
  20. 寻找指定长度以内的最短连续子段和

热门文章

  1. [linux]获取当前文件所在目录的函数
  2. [tensorflow]tensorflow2.1.0使用内置方法进行培训和评估
  3. won10 mysql 5.7.22主从同步
  4. Apache OpenNLP(二)
  5. 1. BeeGo 介绍与项目的创建,启动
  6. 如何基于数据快速构建用户模型(Persona)?
  7. 从零开始部署基于阿里容器云的微服务(consul+registrator+template)(一)
  8. 使用grafana4的alert功能
  9. 大数据分析引擎Apache Flink升级成为Apache顶级项目
  10. 春Phone计划 51cto沙龙郑州站活动