zoukankan      html  css  js  c++  java
  • JavaBean

    1、JavaBean简介

    JavaBean是使用Java语言开发的一个可用的组件,在Jsp的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。

    优点:

    • 可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。
    • 可利用JavaBean的优点。将日常用到的程序写成JavaBean组件,当在JSP要使用时,只调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样可以节省开发所需要的时间。

    2、JavaBean开发要求

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

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

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

    ② 需要实现接口:java.io.Serializable 

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

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

    ⑤ 封装的属性如果需要被外部做操作,则必须编写对应的setter、getter方法

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

    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;  
        }  
    }  

    3、JavaBean的几个名词

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

    POJO:简单Java对象;

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

    4、WEB开发的标准目录结构

    Web项目中各个目录的作用
    WEB ROOT Web的根目录,一般虚拟目录直接指向此文件夹,此文件夹下必须直接包含WEB-INF
    WEB-INF Web目录中最安全的文件夹,保存各种类,第三方jar包,配置文件
    Web.xml Web的部署描述符
    classes 保存所有的JavaBean,如果不存在,可以手工创建
    lib 保存所有的第三方jar文件
    tags 保存所有的标签文件
    jsp 存放*.jsp文件,一般根据功能再建立子文件夹
    js 存放所有需要的*.js文件
    css 样式表文件的保存路径
    images 存放所有的图片,如*.gif和*.jpg文件

    5、使用 import 语句

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

    ② Toncat中的classpath配置:

    • 所有的class要进行访问时都必须在classpath中进行配置,在Toncat中依然可以使用,在Web开发中,Tomcat安装目录的lib文件夹,WEB-INFclasses和WEB-INFlib文件夹实际上都表示了classpath,所以直接将类或jar包复制到这些文件夹中就可以直接使用了。
    <%@ page contentType="text/html" pageEncoding="GBK"%>  
    <%@ page import="com.mk9207.model.*"%>    <!-- 导入com.mk9207.model包 -->  
    <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> 

    6、使用<jsp:useBean>指令

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

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

    ② 主要属性:

    • id:表示实例化对象的名称;
    • scope:表示此对象的保存范围,一共四种属性范围:page、request、session、application
    • class:对象所对应的包.类名称
    <%@ page contentType="text/html" pageEncoding="GBK"%>  
    <jsp:useBean id="simple" scope="page" class="com.mk9207.model.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="/model" docBase="D:myweb" reloadable="true"/>

    以后Tomcat会自动进行检测,如果发现JavaBean修改后会自动进行重新加载。

    注意

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

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

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

  • 相关阅读:
    iOS-按钮的代码封装
    MAC_talk 笔记-之mac使用技巧
    关于简历
    win7系统下VS2010配置glew
    NOIP模拟:饼干(简单规律推导)
    c++ string and wstring conversion
    c++ 使用PID获取可执行文件路径
    c++ 使用PID获取顶级窗口句柄和标题
    c++ 去掉字符串首尾空格
    git include只包含某些文件
  • 原文地址:https://www.cnblogs.com/Dm920/p/11674373.html
Copyright © 2011-2022 走看看