javabeans

来源:互联网 发布:淘宝售后用语 编辑:程序博客网 时间:2024/03/29 23:13

Jsp中嵌入许多javacode,我们也说过这是不好的设计方式,现在我们来年看看怎样把这些javacodejsp中抽出来,成为独立的一个类别(称这javabeans,并且示范如何在jsp里面呼叫这些javabeans,另外,也会一并介绍由servlet呼叫jsp方式,之前看的范例程式,其流程。逻辑,和资料展现者放在jsp中,这方式称为page-centric架构,或Model-1架构,现在我们开始撰写的范例会将控制权交给servlet,以seervllet这控制中心,掌控程式的流程以级Html/jsp网页分派,这是一种 servlet-centric架构,也称为model-2其实就是mvc;

Jsp呼叫javabean:

 这时里说的javabeans只是一般的java类别,跟EjBEnterprise javaBeans)是两种不同的东西,请勿混淆,那么servlet也是java类别,它跟javaBeans又有什么不同呢?

Javabeans只是普通的类别;

Servletjava类别是继承自javax.servlet.HttpServlet,因此具有接收Http request和发送?Httpreponse等网站应用程式的基本功能,而javabeans只是单纯的类别,它可以继续自任何类别,但无法处理Http信息;它在网站应用程序中的的角色通常是作为参数物件(在jspservlet之间传递,以共享信息)或工具类别,作为参数物件时通常代表种资料,因此被称为valuebean,作为工具类别时,则称为utilitybean.

怎样的类别可以称为javabeans

类别通常以“动词+Bean”的方式命名:例如:UserInfoBean,CheckStockBean。。。。。等。这是一种惯例,以Beean的方式使用它,那么它就是一种Bean

Jsp如何使用你的javaBean,你的 bean必须提供一种属性,jsp便可以用特殊的标签来存取这些Bean属性。所谓属性是一组gettersetter methods,两者统称为accessmethods(存取方法),通过这些方来间接地存取属性的的私有成员,当然,这些方法必须用public修饰。例如:有个bean的类EMployeeBean,它要提供一个年龄的属性给外界的jsp存取,此类的定义如下:

public class EmploueeBean{

private int age;

public int getAge(){

return age;

}

public void setAge(int age){

this.age=age;

}

}

jsp中使用是时这样写:

<jsp:useBean id=”emp” class=”cn.ts.EmployeeBean”scope=”request”/>

<jsp:setProperty name=”emp” property=”age”value=”25”/>

员工的年龄是:

<jsp:getProperty name=”emp” propperty=”age”/>

其中

<jsp:useBean >标签就是指明要使用一个bean组件,id代表该组件的名称,class指明了要用什么类别的beanscope则代表组件的生命周期。

<jsp:setProperty>标签用来设定bean的属性,property指明要设定那个属性,value就是属性的值,要注意的是Html传入的值一定上字符串,但我们的age属性是一个整数类型的,这个转换部分是由 web服务器帮我们琮完成的;

<jsp:getProperty >标签昌用来取得bean属性的值;

注意:

1、 属性的大小写。在jsp中属性的名称是完全小写的“age,但是gettersetter方法的名称是getAge()setAge()这种命名方式是固定的,照这个规则来命名,web Containner就能够找到正确的存取方法。

2、 对于oop概念不了解的人来说,可能误以为在jsp中取的是“age”属性,就是类定义里面的那个private成员(age),其实这两者上只是名字相同而已,实际动作的是无关系的的,因为jsp完全是透过gettersetter方法来存取属性的。

原创粉丝点击