JSP学习笔记(4)-Javabean

按照sun公司的定义,Javabean是一个可重复使用的软件组件,实际上Javabean是一种Java类,通过封装属性和方法成为具有某种功能或处理某个业务的对象,简称Bean,Javabean基于java语言,自然不依赖平台,它具有的特点:

  1. 可以实现代码的重复利用
  2. 易编写、易维护、易使用
  3. 可以在任何安装了Java运行环境的平台上使用,并且不需要重新编译

JSP页面可以将数据的处理过程指派给一个或者几个bean来完成,即JSP页面调用bean完成数据的处理,并将有关处理结果存放在bean中,然后JSP页面负责显示bean中的数据。JSP页面的主要工作是负责显示数据,而不是处理数据。

1.编写JavaBean

Javabean分为可视组件和非可视组件,在JSP中主要使用非可视组件。

Javabean实际上就是一个类,对于编写这个类,有些规则:

  1. 如果类的成员变量是xxx,为了获取或更改成员变量的值,也就是获取或更改属性,必须提供:getXxx()和setXxx()两个方法。
  2. 对于boolean类型的成员变量,允许使用is代替get和set
  3. 类中声明的方法的访问属性必须是public
  4. 类中的构造方法必须是public,无参的

非可视组件包括了工具Javabean和值Javabean。

  1. 值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器。
  2. 工具JavaBean可以不遵循JavaBean规范,通常用于封装业务逻辑,数据操作等,例如连接数据库,对数据库进行增、删、改、查和解决中文乱码等操作。工具JavaBean可以实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。

Bean的字节码文件目录

我们都知道,一个Java程序要运行,必须先要将其编译成字节码文件,再由JVM解释运行,那么Tomcat该如何找到这个字节码文件呢?

Tomcat提供了特定的文件目录,只要将字节码文件保存到该目录下,Tomcat服务器就能找到并执行。

当前项目目录下:\WEB-INF\classes,根据类编写时包名,在classes下建立相应的目录,把字节码文件放在相应目录下即可。

至于源码目录,设置与否都可以,一般会设置相关目录,方便项目更改,源码存放目录没有什么要求。在eclipse中源码文件一般是在"项目/src"下。

2.创建与使用JavaBean

2.1.使用Bean

JSP页面使用JSP的动作标记useBean来加载使用bean;

useBean标记的语法格式:

<jsp:useBean id="bean的名字(其实就是bean类一个对象)" class="创建bean的字节码(相当于导入要使用的类的字节码文件)" scope="bean的有效范围"/>
或者
<jsp:useBean id="bean的名字(其实就是bean类一个对象)" class="创建bean的字节码(相当于导入要使用的类的字节码文件)" scope="bean的有效范围">
</jsp:useBean>

 

2.2.Bean的加载原理

JSP页面使用JSP的动作标记useBean来加载一个bean,JSP引擎首先根据useBean给出的bean的id及scope,在一个同步块中查找JSP引擎内置pageContent对象中是否含有这样的bean,如果存在,JSP引擎就分配给用户;如果不存在,就根据class指定的字节码创建一个JSP动作标记useBean要求的bean,并将创建的bean添加到pageContent内置对象中。

画个图看看

image

2.3.bean的有效范围(生命周期)

scope的取值决定了bean的生命周期,可取的值有page、session、request、applicarion。下面对不同取值说明

  1. page:只在当前页面有效,直到页面执行完毕。当两个用户同时访问一个JSP页面时,一个用户对自己的bean属性改变不会影响到另一个用户,取值为session、request也是。
  2. session:在用户访问的Web服务目录的各个页面都有效,知道用户的会话(session)消失。
  3. request:只在当前页面有效,直到响应结束。bean的request存活时间比page存活时间长,因为JSP引擎认为页面执行完毕后,响应才算结束。
  4. application:JSP引擎为Web服务目录下所有的JSP页面分配一个共享的bean,当多个用户同时访问一个JSP页面时,任何一个用户对自己bean属性更改都会影响到其他用户。

3.获取和修改Bean属性

3.1.使用getProperty动作标记获取bean的属性值

使用getProperty获取bean的属性值后,会将值用串的形式发送到用户的浏览器。语法如下:

<jsp:getProperty name="bean的id的名字(也就是对象名)" property="bean的属性"/><jsp:getProperty name="bean的id的名字(也就是对象名)" property="bean的属性">
</jsp:getProperty>

该指令相当于<%=bean.getXxx()%>

 

3.2.使用setProperty动作标记设置bean的属性值

(1)将bean属性的值设置成一个表达式的值或字符串
<!--将bean属性的值设置成一个表达式-->
<jsp:setProperty name="bean的id的名字" property="bean的属性" value="<%=表达式%>"/>
<!--将bean属性的值设置成一个字符串-->
<jsp:setProperty name="bean的id的名字" property="bean的属性" value=字符串/>

 

如果将表达式的值设置为bean属性的值,表达式值的数据类型必须和bean属性的数据类型一致;如果将字符串设置成bean属性,这个字符串会自动转化长bean的属性的类型。

Java将字符串转化成其他数据类型的方法:

  • 转化成int:Integer.parseInt(String s);
  • 转化成long:Long.parseLong(String s);
  • 转化成float:Float.parseFloat(String s);
  • 转化成double:Double.parseDouble(String s);

这些方法都可能会发生NumberFormatException异常。

(2)通过HTTP表单的参数的值来设置bean的相应属性的值
  • 用HTTP表单的所有参数的值设置bean相对应的属性值
    <jsp:setProperty name="bean的id的名字" property="*"/>
此方法没有具体指定bean属性的值对于表单中哪个参数指定的值,系统会自动匹配,但要求bean属性的名字必须在表单中有名称相同的参数名字相对应,JSP引擎会自动将参数的字符串值转换成bean相对应的属性的值。
  • 用HTTP表单的某个参数的值设置bean某个属性值
    <jsp:setProperty name="bean的 id的名字 property="属性名" param="参数名"/>

此方法具体指定了bean属性的值将对应表单中哪个参数名指定的值,不要求property给出的bean属性的名字和param给出的参数名一致。

用HTTP表单设置bean属性值时,只有提交了表单,对应的setProperty标记才会被执行。

转载于:https://www.cnblogs.com/pinnsvin/p/5524562.html

Java语言是SUN公司开发的一种编程语言。 1.1 Java语言产生和发展的背景   Java语言源于Oak语言,这是SUN公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式嵌入系统。尽管Oak语言在技术上颇为成功,但由于商业上的原因,却未能在市场的激烈竞争中站稳脚跟。然而,Internet和WWW日新月异的发展却为Oak创造了新的生存空间。Oak经过改进,成为一种非常适合网络开发的独特语言——Java,从而脱颖而出,一举成名。   Internet,中译为“因特网”或“互联网”,是当今最大的国际性计算机互联网络。它源于美国国防部高级研究计划局(Advanced Research Project Agency)的网络ARPANET,但发展到今天,已成为一个庞大的全球网。顾名思义,这是一个“网间网”它把各种异构网络联接一起,使位于世界各地、不同网络中的人们能够自由地交换信息。Internet在全球的用户以千万计,并在不断激增;被它直接、间接连通的国家也越来越多。Internet上的协议标准也日益受到广泛支持并在不断地得到扩充。   WWW全称为World Wide Web,中译为“万维网”、“全球网”等,是Internet中最为直观和富有魅力的资源。它运用超文本(Hypertext)技术将信息组织成文字、声音、图像,用户可以用浏览器读取这些信息。WWW上信息种类繁多,用户可以根据自己的需要在任何时间访问自己所需的信息。WWW上的信息由页面组成,页面中包含超文本链接(Hypertext Link),把位于不同页面的相关内容链在一起,因而检索信息非常方便。WWW的发展也是日新月异,它已不止局限于展示静止信息,正在不断增强交互和动态性。许多商家和企业也把目光瞄准了WWW,可以预料,WWW世界将变得越来越丰富多彩。   Internet(含WWW)为人们提供了许多有用的信息,然而,Internet上的用户使用着各种各样的计算机,系统软件和用户软件也缺乏兼容性。在这些不兼容的平台间交换信息,就像对许多语言不通的人讲话一样,是非常困难的。而Java与生俱来的特性刚好可以解决这道电脑界的“世纪难题”。它建立的虚拟环境运行标准解决了软件跨平台执行的问题,使不同的平台都能理解用Java编写的程序,命名Java语言成了网络世界的通用语言。因此,Java在Internet和WWW环境下如鱼得水,迅速风靡全球。   总之,Java作为一种独特的语言,诞生于Internet和WWW蓬勃发展的时期,可谓恰逢其时。如今的Java与当初的Oak语言已不可同日而语。而且,Java技术的创始者SUN公司采用了一种“开放”策略,将它公诸于众,更激发了第三方软件开发商的极大热情,纷纷发展Java技术。Java的前景是非常广阔的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值