转自:https://www.cnblogs.com/mq0036/p/3873406.html

一、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

package blog.csdn.joywy;

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项目中各个目录的作用:

No.

目录或文件名称

作用

1

WEB ROOT

Web的根目录,一般虚拟目录直接指向此文件夹,此文件夹下必然直接包含WEB-INF

2

WEB-INF

Web目录中最安全的文件夹,保存各种类、第三方jar包、配置文件

3

Web.xml

Web的部署描述符

4

classes

保存所有的JavaBean,如果不存在,可以手工创建

5

lib

保存所有的第三方jar文件

6

tags

保存所有的标签文件

7

jsp

存放*.jsp文件,一般根据功能再建立子文件夹

8

js

存放所有需要的*.js文件

9

css

样式表文件的保存路径

10

images

存放所有的图片,如*.gif或*.jpg文件

注:

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

2.Tomcat中classpath的配置:

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

欢迎来到望星空

SimpleBean simple = new SimpleBean();    //声明并实例化SimpleBean对象

simple.setName("Joywy");                 //设置name属性

simple.setAge(23);                       //设置age属性

%>

姓名:

年龄:

四、使用指令

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

1.

2.主要属性:

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

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

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

样例:

欢迎来到望星空

simple.setName("Joywy");

simple.setAge(23);

%>

姓名:

年龄:

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

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

注意:

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

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

四、指令内部实现原理

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

java中bean文件主要实现内容_JavaBean简单及使用相关推荐

  1. java 中 bean 的生命周期

    java 中 bean 的生命周期 本篇中会对涉及到的知识点皆做出描述: 首先,我们先了解先虚拟机的类加载机制: 虚拟机把描述类的数据从Class 文件中加载到内存,并对数据进行校验.转换解析和初始化 ...

  2. java语言 文件上传,java中实现文件上传的方法

    java中实现文件上传的方法 发布时间:2020-06-19 10:29:11 来源:亿速云 阅读:86 作者:Leah 这篇文章给大家分享的是java中实现文件上传的方法,相信大部分人都还没学会这个 ...

  3. java中读取文件的方法

    总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...

  4. 在Java中确定文件类型

    以编程方式确定文件的类型可能非常棘手,并且已经提出并实现了许多基于内容的文件标识方法. Java中有几种可用于检测文件类型的实现,其中大多数很大程度上或完全基于文件的扩展名. 这篇文章介绍了Java中 ...

  5. java中各种文件的相互转化

    java中各种文件的相互转化 前几天一直在进行rtf文件流转化为HTML,折腾了好久,文件的格式转化都无法成功.后来找到了一个新的包(aspose),总算解了我的燃眉之急.现在记录分享一下. 1.使用 ...

  6. java中写入文件_java中创建、写入文件的5种方式

    在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...

  7. java中打开文件显示_从java程序中打开任何文件

    在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...

  8. 服务器测试文件怎么创建,如何创建一个“FTPS”模拟服务器以单元测试Java中的文件传输...

    我有一个创建FTPS连接的CreateFTPConnection类.使用此连接传输文件.这里是TransferFile类的代码如何创建一个"FTPS"模拟服务器以单元测试Java中 ...

  9. java 获取文件扩展名_如何在Java中获取文件扩展名

    java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...

最新文章

  1. 花了2周时间收集汇总的大厂面经,节后准备跳槽的看过来!
  2. nginx 重写 隐藏index.php
  3. foreach ($cc as $key = $item);$item加与不加的区别
  4. c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
  5. 弹出模态窗口,关闭并刷新页面
  6. 使用“ Row_Number”功能和WHILE循环创建滚动平均值报告
  7. 蓝桥杯 ADV-144算法提高 01背包
  8. 关于 IMPP/XMPP/SIMPLE 这几种即时通讯协议和NAT traversal
  9. Kubernetes详解(二十一)——ReplicaSet控制器实战应用
  10. Oracle EBS二次开发简介
  11. 从无到有构建计算机网络
  12. Python的h5py模块
  13. 【面试】2019工商银行软件开发中心(上海)笔面试记录
  14. UG NX二次开发 - CAM 获取和设置公差的方法,含内外公差、边界内外公差的设置方法
  15. HTML+CSS面试试题(部分)
  16. 《数据分析思维》:分析方法与业务知识
  17. 前端开发新人写简历的大概套路
  18. python 期货现货差价监测_现货价格和期货价格的关系怎么看?
  19. 怎么理解数据湖?(深度长文)
  20. TextBox 单行文本框,多行文本框

热门文章

  1. 目标立体检测 红外图像_一种有效的红外小目标检测方法
  2. lightgbm过去版本安装包_云顶手游10.13安装包,6月24日
  3. Java 多线程 之 suspend挂起 线程实例
  4. MySQL的元数据锁MDL发生场景和解决方法总结
  5. 从外卖小哥到月入两万的城市经理,他在无锡见证外卖大战
  6. uedit修改文件上传路劲,支持api文件接口
  7. iOS 最新版 CocoaPods 的安装流程
  8. Discuz NT 架构剖析之Config机制
  9. TCP长连接与短链接
  10. 队列在多线程中的应用