zoukankan      html  css  js  c++  java
  • JavaBean

    JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。

    JavaBean规范: 

              <1>需要被序列化并且实现了 Serializable 接口。
              <2>JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,如: public class user{ …}
              <3>JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,例如:public User() {…}
              <4>一个javaBean类不应有公共实例变量,类变量都为private ,如: private int id

              <5>javaBean属性是具有getter/setter方法的成员变量。也可以只提供getter方法,这样的属性叫只读属性;也可以只提供setter方法,这样的属性叫只写属性; 如果属性类型为boolean类型,那么读方法的格式可以是get 或is。例如名为abc的boolean类型的属性,它的读方法可以是getAbc(),也可以是isAbc();
                     命名规范: 
                         一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。
                         例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。
                         属性名为uName,其对应的getter/setter 方法是getuName/setuName。
                         属性名为URL, 其对应的getter/setter 方法是getURL/setURL。

    package com.qdu.beans;
    
    import java.io.Serializable;
    
    public class Student implements Serializable{
        
        private String srollno;
        private String spassword;
        private String sname;
        private String sgender;
        private String sbatch;
    
        //带参数的构造函数
        public Student(String sno, String sname, String spassword, String sgender, String sbatch) {
            this.srollno = sno;
            this.spassword = spassword;
            this.sname = sname;
            this.sgender = sgender;
            this.sbatch = sbatch;
        }
    
        //建议实体类都包含一个不带参数的构造函数
        public Student() {
        }
    
        public String getSrollno() {
            return srollno;
        }
    
        public void setSrollno(String srollno) {
            this.srollno = srollno;
        }
    
        public String getSpassword() {
            return spassword;
        }
    
        public void setSpassword(String spassword) {
            this.spassword = spassword;
        }
    
        public String getSname() {
            return sname;
        }
    
        public void setSname(String sname) {
            this.sname = sname;
        }
    
        public String getSgender() {
            return sgender;
        }
    
        public void setSgender(String sgender) {
            this.sgender = sgender;
        }
    
        public String getSbatch() {
            return sbatch;
        }
    
        public void setSbatch(String sbatch) {
            this.sbatch = sbatch;
        }
    }
    View Code

    JavaBean 属性
    一个 JavaBean 对象的属性应该是可访问的。这个属性可以是任意合法的 Java 数据类型,包括自定义 Java 类。
    一个 JavaBean 对象的属性可以是可读写,或只读,或只写。JavaBean 对象的属性通过 JavaBean 实现类中提供的两个方法来访问:

    一个 JavaBean 对象的属性应该是可访问的。这个属性可以是任意合法的 Java 数据类型,包括自定义 Java 类。
    一个 JavaBean 对象的属性可以是可读写,或只读,或只写。JavaBean 对象的属性通过 JavaBean 实现类中提供的两个方法来访问:

    访问JavaBean

    <jsp:useBean> 标签可以在 JSP 中声明一个 JavaBean,然后使用。声明后,JavaBean 对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。<jsp:useBean> 标签的语法格式如下:

    <jsp:useBean id="bean 的名字" scope="bean 的作用域" typeSpec/>

    jsp提供三个动作jsp:useBean, jsp:getProperty(获取属性),jsp:setProperty,用于在jsp页面上操作一个javabean
           jsp:useBean动作用于查找或创建一个javabean实例,如果查找到bean,则后续可以使用bean的id去访问该bean,否则创建一个新的javabean实例,常用属性
                   ** id:要查找或创建的bean的名称
                   ** class: 要查找的bean对应的类的类名
                   ** scope: 在什么范围查找一个bean,范围有四个:page,request,session,application

     <!--<h3>1. 查找或创建JavaBean实例</h3>-->
                <!--目前还没有一个名为stu的javabean实例,所以这里的代码会导致一个新的javabean实例被创建-->
                <jsp:useBean id="stu" class="com.qdu.beans.Student" scope="session" />
    View Code 

    访问 JavaBean 对象的属性

    在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法,使用 <jsp:setProperty/> 标签来调用 setter 方法,语法格式如下:

     jsp:setProperty动作用于设置一个javabean的指定属性的值,该动作的常用属性有:
                   ** name:指定要使用的bean的名称,就是useBean中指定的
                   ** property:指定要设置的属性的名称,为javabean对应的类中的属性名
                   ** value:javabean属性的值

    <!--<h3>2. 设置JavaBean实例的属性的值</h3>-->
                <jsp:setProperty name="stu" property="srollno" value="2017208888" />
                <jsp:setProperty name="stu" property="sname" value="Anna" />
                <jsp:setProperty name="stu" property="spassword" value="6666" />
                <jsp:setProperty name="stu" property="sgender" value="女" />
                <jsp:setProperty name="stu" property="sbatch" value="17J03班" />
    View Code

           jsp:getProperty动作用于获取一个javabean的指定属性的值,该动作的常用属性有:
                   ** name:指定要使用的bean的名称,就是useBean中指定的
                   ** property:指定要获取的属性的名称,为javabean对应的类中的属性名

    <!--<h3>3. 获取JavaBean实例的属性的值</h3>-->
                <p>
                    <br>学号: <jsp:getProperty name="stu" property="srollno" />
                    <br>密码: <jsp:getProperty name="stu" property="spassword" />
                    <br>姓名: <jsp:getProperty name="stu" property="sgender" />
                    <br>性别: <jsp:getProperty name="stu" property="sgender" />
                    <br>班级: <jsp:getProperty name="stu" property="sbatch" />
                </p>
    View Code

    设置bean属性值的方式

    <body>
            
            <h1>设置bean属性值的方式</h1>
            <hr>
            
            <!-- 这里因为还没有一个名为stu的javabean,所以useBean会创建一个Student类型的bean对象 -->
            <jsp:useBean id="stu" class="com.qdu.beans.Student" scope="request" />
    
            <h4>1. 通过value属性直接给出值</h4>
            <jsp:setProperty name="stu" property="srollno" value="2016890709" />
            <jsp:setProperty name="stu" property="sname" value="anna" />
    
            姓名:<jsp:getProperty name="stu" property="sname" />
            <h4>2. 通过param属性指定使用的请求参数,给出参数的名称</h4>
            <jsp:setProperty name="stu" property="srollno" param="srollno" />
            <jsp:setProperty name="stu" property="spassword" param="spassword" />
            <jsp:setProperty name="stu" property="sname" param="sname" />
            <jsp:setProperty name="stu" property="sgender" param="sgender" />
            <jsp:setProperty name="stu" property="sbatch" param="sbatch" />
            
            姓名:<jsp:getProperty name="stu" property="sname"/>
            <h4>3. 不给value或param属性,则根据属性名使用同名的请求参数的值</h4>
            <jsp:setProperty name="stu" property="srollno" />
            <jsp:setProperty name="stu" property="spassword"/>
            <jsp:setProperty name="stu" property="sname" />
            <jsp:setProperty name="stu" property="sgender" />
            <jsp:setProperty name="stu" property="sbatch" />
            
            姓名:<jsp:getProperty name="stu" property="sname"/>
            <h4>4. 使用*:所有属性根据属性名自动匹配请求参数名称,使用对应参数的值,前提是属性名和请求参数名相同</h4>
            <!--如果指定property为*,则表示自动使用同名的请求参数的值作为同名的属性的值-->
            <jsp:setProperty name="stu" property="*" />
            
            姓名:<jsp:getProperty name="stu" property="sname"/>
            
        </body>
    View Code
  • 相关阅读:
    跨域上传文件
    算法
    websocket
    Bottle
    爬虫一
    RabbitMQ
    git&github快速入门
    centos6安装SaltStack
    ajax
    Django之Model操作
  • 原文地址:https://www.cnblogs.com/Lemon1234/p/11676967.html
Copyright © 2011-2022 走看看