javaBean 简单理解

作者: 奔跑的蛙牛 | 来源:发表于2018-08-22 19:50 被阅读9次

    JavaBean简单及使用

    先说一下javaBean的相关概念

    PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作.

    VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.

    DAO:data access object数据访问对象,此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作.

    BO:business object业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作;

    POJO:plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它.

    JavaBean简介

    JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点:

    1.可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。

    2.可利用JavaBean的优点。将日常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样以来也可以节省开发所需的时间。

    JavaBean开发要求

    1.JavaBean本身就是一个类,属于Java的面向对象编程。

    2.在JSP中如果要应用JSP提供的Javabean的标签来操作简单类的话,则此类必须满足如下的开发要求:

    (1)所有的类必须放在一个包中,在WEB中没有包的是不存在的;

    (2)所有的类必须声明为public class,这样才能够被外部所访问;

    (3)类中所有的属性都必须封装,即:使用private声明;

    (4)封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法;

    (5)一个JavaBean中至少存在一个无参构造方法,此为JSP中的标签所使用。

    第一个简单JavaBean

    public class SimpleBean{  
        private String name;  
        private int age;  
        public void setName(String name){  
            this.name = name;  
        }  
        public void setAge(int age){  
            this.age = age;  
        }  
        public String getName(){  
            return this.name;  
        }  
        public int getAge(){  
            return this.age;  
        }  
    } 
    

    如果在一个类中只包含属性、setter、getter方法,那么这种类就成为简单JavaBean。

    对于简单的JavaBean也有几个名词

    (1)VO:与简单Java对象对应,专门用于传递值的操作上

    (2)POJO:简单Java对象

    (3)TO:传输对象,进行远程传输时,对象所在的类必须实现java.io.Serializable接口。

    WEB开发的标准目录结构

    Web项目中各个目录的作用:


    image.png

    注:

    1.打包编译:编译时直接使用javac -d . SimpleBean.java命令根据package的定义打包编译。

    2.Tomcat中classpath的配置:

    所有的class要进行访问时都必须在classpath中进行配置,在Tomcat中依然可以使用,在Web开发中,Tomcat安装目录的lib文件夹、WEB-INF\classes和WEB-INF\lib文件夹实际上都表示了classpath,所以直接将类或jar包复制到这些文件夹中就可以直接使用了。

    
    <%@ page contentType="text/html" pageEncoding="GBK"%>  
    <%@ page import="xxxx.*"%>    <!-- 导入包 -->  
    <html>  
    <head><title>欢迎</title></head>  
    <body>  
    <%  
        SimpleBean simple = new SimpleBean();    //声明并实例化SimpleBean对象  
        simple.setName("Joywy");                 //设置name属性  
        simple.setAge(23);                       //设置age属性  
    %>  
    <h3>姓名:<%=simple.getName()%></h3>            <!-- 输出name属性的内容 -->  
    <h3>年龄:<%=simple.getAge()%></h3>             <!-- 输出age属性的内容 -->  
    </body>  
    </html> 
    

    使用<jsp:useBean>指令

    除了使用import的语句之外,也可以使用JSP中提供的:<jsp:useBean>指令完成操作,指令的操作语法如下所示:

    1.<jsp:useBean id="实例化对象名称" scope=“保存范围” class=“包.类名称“/>

    2.主要属性:

    (1)id:表示实例化对象的名称

    (2)scope:表示此对象保存的范围,一共有四种属性范围:page、request、session、application

    (3)class:对象所对应的包.类名称
    样例:

    <%@ page contentType="text/html" pageEncoding="GBK"%>  
    <jsp:useBean id="simple" scope="page" class="xxx.SimpleBean"/>  
    <html>  
    <head><title>欢迎</title></head>  
    <body>  
    <%  
        simple.setName("Joywy");  
        simple.setAge(23);  
    %>  
    <h3>姓名:<%=simple.getName()%></h3>  
    <h3>年龄:<%=simple.getAge()%></h3>  
    </body>  
    </html>  
    

    在使用<jsp:useBean/>指令时,实际上会默认调用SimpleBean类中的无参构造方法进行对象实例化,当修改SimpleBean.java文件后,如果要想让其起作用,则需要重新启动服务器,我们可以通过在Tomcat中直接配置自动加载的操作,这样即使不重新启动服务器,JavaBean修改后也可以被立即加载进来。重新加载的配置如下:在Tomcat安装目录下conf/server.xml文件中进行配置

    <Context path="/xx" docBase="D:\myweb" reloadable="true"/>

    注意:

    1.直接在配置虚拟目录的位置上增加一个reloadable属性即可,但是这种情况只适合于开发,因为使用reloadable自动加载后,服务器将始终处于监视状态,一旦发现类修改后就要立刻重新加载,运行性能是比较低的,所以,当项目真正发布运行时一定要将reloadable的内容设置成false,以提升入屋企运行性能。

    2.还要记住,当Tomcat重新加载了新的内容后,所有的操作都将初始化,所有设置过的session属性都将消失。

    <jsp:useBean>指令内部实现原理

    依靠的是反射机制完成的,在使用<jsp:useBean>指令时需要定义对象所在的“包.类“名称,而且又要求类中存在无参构造方法,这就是反射操作的前提条件,所以<jsp:useBean>的语法实际上属于反射机制的操作实现。

    相关文章

      网友评论

        本文标题:javaBean 简单理解

        本文链接:https://www.haomeiwen.com/subject/wfneiftx.html