zoukankan      html  css  js  c++  java
  • 浅谈JavaBean

      1、JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean遵守bean规范,有利于数据的封装与重用。
      2、javabean具有以下几种特性:
      • 支持反射机制:利用反射机制可以分析出JavaBean是如何运行的
      • 支持事件:是一种简单的通信机制
      • 支持属性:可以自定义属性,通过标准标签与jsp页面进行数据交互
      • 支持持久性:是指可以将JavaBean进行保存在需要的时候又可以重新载入
      3、 javabean的部分属性有相应的get和set方法 ,对应的方法为:get(set)加上属性(第一个字母变大写)
    package first;
    
    public class Person extends Man{
        private String name;
        private int age;
    //属性第一个字母变为大写,前边加上set
    public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public String getName() { return name; }
    }

      4、jsp提供了JavaBean 3中标准动作既:<jsp:useBean> <jsp:setProperty> <jsp:getProperty>

        ①首先我们来看<jsp:useBean>动作

       <jsp:useBean id="person" class="first.Person" type = "first.Man"  scope = "request"/>

         其对应生成servlet代码

         first.Person person = null;
          synchronized (application) {
            person = (first.Person) _jspx_page_context.getAttribute("person", javax.servlet.jsp.PageContext.APPLICATION_SCOPE);
            if (person == null){
              person = new first.Person();
              _jspx_page_context.setAttribute("person", person, javax.servlet.jsp.PageContext.APPLICATION_SCOPE);
            }
          }

     标签内的相应属性对应的含义我们用一个表格来描述

    属性值 说明
    id  

    给Bean起个变量名可以在指定范围内使用改变量。如:person等同Personperson = new Person();

    class bean的路径名必须是page.class。如Person在包first中故为first.Person,默认值为page
    scope bean的有效范围,取值有page,request,session,application,
    beanName 实例化的类名称或序列化模板的名称,制定的名称可以为其接口,父类。ji
    type 指定其父类或接口名称。如实例化hashMap,type可以写Map,当没有父类或接口时可以省去
    1. 谈完属性我们再来谈谈他的作用域名scope。其作用域有四种page,request,session,application
      • page:仅仅在当前页面有效。通过forward转向其他页面都将导致其生命周期的结束
      • request:  1>客户请访问的当前jsp页面。2>与当前jsp页面共享同一个客户请求的页面既当前页面的<%@include>、<jsp:forword>标签包含的其他jsp页    当向客户返回响应时生命周期结束
      • session:  当javabean对象创建后,在整个session会话期间,同一个session共享同一个javabean对象。也可以通过session.getAttribute()方法取得JavaBean对象,当当前客户会话结束时,该javabean立即销毁
      • application:   JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。 JavaBean对象作 为属性保存在application对象中,属性的名字为JavaBean的id,属性值为JavaBean对象除了可以通过JavaBean的id直接引用JavaBean对象外,也可以通过application.getAttribute()方法取得JavaBean对象

        ②当了解完如何创建Javabean对象接下来我们需要了解如何使用Javabean对象。我们可以使用<jsp:setProperty>来设置其属性值,标签内的各个属性代表的含义用表格来描

     <jsp:setProperty property ="name" value = "bo" name = "person"/> 

    对应生成的jsp_servlet

     org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "name", "bo", null, null, false);
          out.write('
    ');

     

    属性 说明
    name

    指定设置那个对象的属性,指bean的名字即为<jsp:useBean>中的id值

    property 是指创建的对象(即bean)的属性名,将其值赋给该对象的属性值
    param 是指表单传过来的参数,需要将表单传过来的参数设置为该对象的属性值时。当通过表单参数设置bean的属性值时不用设置value的值jsp引擎会自动根据表单中与bean属性名对应,并转化相应的参数类型。
    value 要设定的属性值

     

    当通过表单参数设置bean的属性值时我们可以通过把属性名设置为通配符“*”来设定所有的bean属性值.例如表单中传过来两个参数name = “hhh”,age = "22".

    <jsp:setProperty property = "*", name = "person"> 

    执行该代码以后,该bean对象也可以说person实例的name属性值已经设置为hhh,age值已设置为22

        ③有设置属性的bean动作,当然也有取属性的bean动作即为<jsp:getProperty>,该标签必须与<jsp:useBean>标签配合使用

     <jsp:getProperty property = "age" name = "person"/> 

    对应生成的jsp_servlet代码

      out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((first.Person)_jspx_page_context.findAttribute("person")).getAge()))); 

     该标签只有两个属性name和property其标签内的属性与<jsp:setProperty>中的属性含义相同

     

    人真是奇怪,非得走到最后一步,是不会觉悟的。但是到了最后一步,又觉得太晚了。
  • 相关阅读:
    PHP 包含文件路径问题
    PHP显示今天、今月、上月、今年的起点/终点时间戳
    PHP Web基础教程
    php如何生成随机密码的几种方法
    You don't have permission to access /~whpc on this server.
    linux 网络 PING IP可以通,ping域名ping不通
    CPU : 二级缓存容量
    简单建立个人WEB网站
    MKL程序编译与连接:Lapack篇
    ldd命令原理与使用
  • 原文地址:https://www.cnblogs.com/boWatermelon/p/6558752.html
Copyright © 2011-2022 走看看