Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6945958
  • 博文数量: 701
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12021
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院架构师,专注企业数字化各个方面,MES/ERP/CRM/OA、物联网、传感器、大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(701)

分类:

2007-04-06 16:37:11

学习JSP,不可避免地你会接触到JavaBeans,对于一个没有太多Java基础的学习者来说,要正确理解JavaBeans实在不是一件太容易的事。在本文中,我们将对JavaBeans作一个整体的介绍,作为这样的一个介绍,我们可能不会涉及到某些技术上的细节。我们只是希望,无论是对于对JavaBeans有一定了解的人,还是对于刚接触JavaBeans的人,在阅读过本文后,能够对JSP中的JavaBeans有一个整体的把握。
一、什么是JavaBeans
JavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在Java(包括JSP)中使用可重复使用的Java组件的技术规范。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。

二、你可以不使用JavaBeans
从原理上来说,使用JavaBeans不过是使用一种特定的规范在Java程序中引入特定的类。你完全可以不使用JavaBeans而直接在Java程序中对这样的Java类进行说明并进行示例。当然,这无疑会降低你的程序的可读性,而且你将牺牲组件的可重复使用的特性。但是,对于一个简单的应用中的简单程序。你完全可以不必拘泥于使用JavaBeans。即便是对于JSP,你也可以做同样的选择,我们知道,在“<%”、“%>”引起的程序段中,我们可以使用任何的纯Java语句,包括对一个新的对象的定义和示例。

三、在绝大多数情况下,使用JavaBeans是一个明智的选择
正如我们前面提到的,使用JavaBeans你可以充分利用组件的可重复使用的特性并增加你的程序的可读性。当你的应用日趋庞大时,你会发现,遵守这样的规范所带来的在开发和维护中的便利,相对于你所受到的约束,你完全值得做这样的交换。

四、JSP中的JavaBeans类是否必须严格遵守某些约定
在很多的JSP参考资料中都提到JavaBeans需要遵守JavaBeans规定,也就是JavaBeans API。但是,事实上在程序设计时,情况并没有这么复杂。你完全可以根据你自己的需要来定制你的JavaBeans。在这里,我们只要求JavaBeans是一个Java类,并不需要遵守其他规范。当然,对于这样的一个JavaBeans,你应该自己有一个清楚的认识。因为它可能并没有我们通常意义上所理解的JavaBeans的一些特性,对于某种极端的情况,你可能只能使用这样的语句来引入JavaBeans,然后来通过yourId这个JavaBeans的实例来处理并调用你的JavaBeans中的属性和方法。

五、JSP中JavaBeans的实质
我们注意到,一个引入JavaBeans的语句,其结构应该是,在这当中,我们必须对三个方面的内容进行定义。首先是一个id,这将对应于一个类的实例,如果这个实例已经存在,将直接引用这个实例;如果这个实例尚未存在,将通过我们在class中的定义从这个class中进行示例。这也就是我们要定义的第二个内容。最后,我们还实该在scope中定义id这个实例存在的范围,事实上这定义了这个实例所绑定的区域及其有效范围。
1、page:这个JavaBeans将存在于该JSP文件以及此文件中的所有静态包含文件中,直到页面执行完毕为止。这将基本等价于JSP中这样的Java语句。
<%
yourClass yourId;
if (pageContext.getAttribute("yourId",PageContext.PAGE_SCOPE)==null)
{yourId=new yourClass();
pageContext.setAttribute("yourId",yourId,PageContext.PAGE_SCOPE);}
else yourId=(yourClass)pageContext.getAttribute("yourId",PageContext.PAGE_SCOPE);
%>
2、request:这个JavaBeans将作为一个对象绑定于该页面的request中。简单地说该JavaBeans在该页面发出的请求中有效,这将基本等价于JSP中这样的Java语句。
<%
yourClass yourId;
if (pageContext.getAttribute("yourId",PageContext.REQUEST_SCOPE)==null)
{yourId=new yourClass();
pageContext.setAttribute("yourId",yourId,PageContext.REQUEST_SCOPE);}
else yourId=(yourClass)pageContext.getAttribute("yourId",PageContext.REQUEST_SCOPE);
%>
3、session:这个JavaBeans将作为一个对象绑定于session中。简单地说该JavaBeans在本地有效,这将基本等价于JSP中这样的Java语句。
<%
yourClass yourId;
if (session.getAttribute("yourId")==null)
{yourId=new yourClass();
session.setAttribute("yourId",yourId);}
else yourId=(yourClass)session.getAttribute("yourId");
%>
4、application:这个JavaBeans将作为一个对象绑定于application中。简单地说该JavaBeans在本应用中有效,这将基本等价于JSP中这样的Java语句。
阅读(1454) | 评论(0) | 转发(0) |
0

上一篇:JSP中使用JavaBean

下一篇:J2EE介绍

给主人留下些什么吧!~~