JSP技术之JavaBean

    在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(它们的区别只在于包含静态文件时,此处无区别)时,不断刷新页面将不断得到当前系统时间。

时间: 2024-11-17 06:59:26

JSP技术之JavaBean的相关文章

Servlet,jsp,JSP技术 ,JSP编程

 一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 浏览器解析的时候是需要HTTP协议的,JAVA普通类有没有HTTP协议呢? 普通类没有. JAVA-(class)浏览器如何访问呢? 浏览器---HTML A   JAVA通过IO流生成HTML--->浏览器 B   JAVA 需要加入HTTP协议 解决上面2个问题可以通过 Servlet C  如

【黑马程序员】第10课:JSP+EL表达式+JavaBean

<pre> day10 上节内容回顾 1.jsp的入门 *在jsp里面如何嵌入java代码 **有三种 <%!  %>  <%= %> <%  %> *jsp就是servlet,最终也会被编译成servlet,放到tomcat的work目录里面 2.el入门 *获取域对象里面的值 *${域对象的名称} 3.cookie *cookie分类 **有两种:会话级别的cookie和持久性的cookie(使用方法setMaxAge方法) *创建cookie:new

JavaWeb:JSP技术基础

JavaWeb:JSP技术 快速开始 介绍 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分.网页开发者们通过结合HTML代码.XHTML代码.XML元素以及嵌入JSP操作和命令来编写JSP. JSP通过网页表单获取用户输入数据.访问数据库及其他数据源,然后动态地创建网页. JSP标签有多种功能,比如访问

JSP 技术简述

在动态web项目的开发中,经常需要动态生成HTML内容(如系统中的当前在线人数需要动态生成).如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句.同时,如果静态内容和动态内容混合在一起,那么也将导致程序非常臃肿.为了客服Servlet的这些缺点,Oracle(Sun)公司推出了JSP技术. 1.JSP概述 JSP(Java Server Pages)是建立在Servlet规范之上的动态网页开发技术,其实质是一个简化的Servlet.在JSP文件中,HTML和Java代码共

jsp如何使用javabean

javabean一般放在src目录下 jsp文件一般放在webroot下 src和webroot在同一个目录下 下面是我的目录结构,附带jsp代码和javabean代码 jsp代码 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="java.sql.*" %> <% String

蜗牛—JSP学习之JavaBean初识

初识: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" +

Java Web之JSP技术

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. 1.JSP运行原理 当用户第一次访问JSP页面时,该页面会被JSPServlet翻译成一个Servlet源文件,然后将源文件翻译成.class文件.Servlet源文件和.class文件一般放在当

jsp中使用javabean简单例子

在JSP中使用JavaBean以后,可以实现HTML代码和Java代码的分离,是JSp更易于开发和维护.因此JavaBean成了JSP程序员必备的利器.虽然javaBean是java类,但是它也有自己的一些特性(1)JavaBean是一个public类(2)JavaBean 有一个不带参数的构造方法(3)JavaBean中的属性通过get和set方法进行操作 例如:定义个CircleArea的JavaBean用于封装圆面积的计算逻辑,以后凡是用到圆面积的计算方法均可使用该JavaBean来完成,

Jsp技术总结

这节我们总结一下Jsp的相关技术. 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术.该技术的最大特点在于:写JSP就像写html,但它相比html而言,html只能为用户提供静态数据,而JSP技术允许在页面中嵌套java代码,为用户提供动态数据. 2. JSP原理 1) web服务器是如何调用并执行一个JSP页面的? 服务器首先将JSP翻译为一个Servlet,翻译过后的Servlet可以在\tom