通过实例了解JavaBean开发及使用过程解析

 更新时间:2020年08月10日 08:40:52   作者:旅途  
这篇文章主要介绍了通过实例了解JavaBean开发及使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、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包复制到这些文件夹中就可以直接使用了。

<%@ page contentType="text/html" pageEncoding="GBK"%> 
<%@ page import="blog.csdn.joywy.*"%>  <!-- 导入blog.csdn.joywy包 --> 
<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="blog.csdn.joywy.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="/joywy" docBase="D:\myweb" reloadable="true"/>

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

注意:

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ShardingSphere jdbc集成多数据源的实现步骤

    ShardingSphere jdbc集成多数据源的实现步骤

    本文主要介绍了ShardingSphere jdbc集成多数据源的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Java中死锁产生的原因有哪些?

    Java中死锁产生的原因有哪些?

    这篇文章主要介绍了Java中死锁产生的原因有哪些?死锁即Dead Lock指的是两个或两个以上的运算单元,下文关于其产生的原因,需要的小伙伴可以参考一下
    2022-05-05
  • java9新特性Reactive Stream响应式编程 API

    java9新特性Reactive Stream响应式编程 API

    这篇文章主要为大家介绍了java9新特性响应式编程API的特点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • 2020macOS Big Sur配置Java开发环境之jdk安装过程

    2020macOS Big Sur配置Java开发环境之jdk安装过程

    这篇文章主要介绍了2020macOS Big Sur配置Java开发环境之jdk安装,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • SpringBoot+Shiro+LayUI权限管理系统项目源码

    SpringBoot+Shiro+LayUI权限管理系统项目源码

    本项目旨在打造一个基于RBAC架构模式的通用的、并不复杂但易用的权限管理系统,通过SpringBoot+Shiro+LayUI权限管理系统项目可以更好的帮助我们掌握springboot知识点,感兴趣的朋友一起看看吧
    2021-04-04
  • springboot创建的web项目整合Quartz框架的项目实践

    springboot创建的web项目整合Quartz框架的项目实践

    本文主要介绍了springboot创建的web项目整合Quartz框架的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • springboot创建多module项目的实例

    springboot创建多module项目的实例

    这篇文章主要介绍了springboot创建多module项目的实例代码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java用split分割含一个或多个空格的字符串案例

    Java用split分割含一个或多个空格的字符串案例

    这篇文章主要介绍了Java用split分割含一个或多个空格的字符串案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来过来看看吧
    2020-09-09
  • 如何调试报表插件

    如何调试报表插件

    在项目开发过程中插件调试非常的麻烦,需要修改里面的代码,编译出class,需要重新打包插件。然后把之前的删除,重新安装最新的。调试过程比较繁琐,而且不能调试,十分的不方便,这篇文章主要介绍的是调试报表插件的方法,需要的朋友可以参考下
    2015-07-07
  • SpringBoot整合Jasypt实现配置加密的步骤详解

    SpringBoot整合Jasypt实现配置加密的步骤详解

    Jasypt是一个Java库,提供了一种简单的加密解密方式,可用于保护敏感数据,例如密码、API密钥和数据库连接信息等,本文给大家介绍了SpringBoot整合Jasypt实现配置加密的详细步骤,感兴趣的同学可以参考一下
    2023-11-11

最新评论