Javabean

本文详细介绍了JavaBean的概念及其在JSP开发中的优势,包括代码分离、重用性和节省开发时间。同时,讲解了JavaBean的开发要求,如封装、属性访问方法及构造方法,并展示了如何在JSP中通过指令操作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

 

 
  1. package blog.csdn.joywy;

  2. public class SimpleBean{

  3. private String name;

  4. private int age;

  5. public void setName(String name){

  6. this.name = name;

  7. }

  8. public void setAge(int age){

  9. this.age = age;

  10. }

  11. public String getName(){

  12. return this.name;

  13. }

  14. public int getAge(){

  15. return this.age;

  16. }

  17. }

 

如果在一个类中只包含属性、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包复制到这些文件夹中就可以直接使用了。

 

 
  1. <%@ page contentType="text/html" pageEncoding="GBK"%>

  2. <%@ page import="blog.csdn.joywy.*"%> <!-- 导入blog.csdn.joywy包 -->

  3. <html>

  4. <head><title>欢迎来到望星空</title></head>

  5. <body>

  6. <%

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

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

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

  10. %>

  11. <h3>姓名:<%=simple.getName()%></h3> <!-- 输出name属性的内容 -->

  12. <h3>年龄:<%=simple.getAge()%></h3> <!-- 输出age属性的内容 -->

  13. </body>

  14. </html>

四、使用<jsp:useBean>指令

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

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

2.主要属性:

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

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

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

 

 
  1. <%@ page contentType="text/html" pageEncoding="GBK"%>

  2. <jsp:useBean id="simple" scope="page" class="blog.csdn.joywy.SimpleBean"/>

  3. <html>

  4. <head><title>欢迎来到望星空</title></head>

  5. <body>

  6. <%

  7. simple.setName("Joywy");

  8. simple.setAge(23);

  9. %>

  10. <h3>姓名:<%=simple.getName()%></h3>

  11. <h3>年龄:<%=simple.getAge()%></h3>

  12. </body>

  13. </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>的语法实际上属于反射机制的操作实现。

 

原文:https://blog.youkuaiyun.com/joywy/article/details/7773503

<think>好的,用户想了解JavaBean的概念、用法和示例。首先,我需要根据用户提供的引用内容来整理答案。用户给出了四个引用,其中引用1提到JavaBean的基础使用方法和与JSP的结合,引用2详细讲解了属性和方法元素,引用3是用户自己的学习笔记,引用4则涉及JSP标签的使用。 首先,JavaBean的概念。根据引用1,广义上符合规范的Java都是JavaBean,而引用2提到它是可重用组件,装数据和行为。需要解释JavaBean的核心特征,比如私有属性、公共的getter和setter,以及无参构造器。这里要确保概念部分准确,并引用正确的来源。 接下来是使用方法。引用2中的示例代码展示了如何定义属性及其访问方法,引用1提到了与JSP结合使用,如useBean标签。需要分步骤说明:定义JavaBean、在JSP中使用标准动作标签访问。要提到useBean、setProperty和getProperty标签,参考引用4中的语法。 然后是示例部分。结合引用2的Person和引用4中的JSP标签,展示如何在实际JSP页面中使用JavaBean。可能需要给出代码示例,说明如何实例化Bean、设置和获取属性。 最后生成相关问题。根据用户提供的示例,问题应该围绕JavaBean特性、与普通的区别、JSP中的使用以及实际应用场景。需要确保问题覆盖用户可能感兴趣的方面,并引导深入学习。 检查是否有遗漏或错误。例如,确保提到JavaBean必须有无参构造器,这在引用2的示例中虽然没有显式写出,但根据规范是必须的。另外,JSP标准动作的使用方法是否正确,引用4中的语法是否正确。可能还需要确认用户是否需要更多实际应用场景的例子,但根据引用内容,现有的信息应该足够。 总结回答的结构:概念、核心规范、使用方法、示例代码、相关问题。确保每个部分都有对应的引用标注,如引用1、引用2等,并且格式正确,使用中文,数学表达式使用$...$,但当前问题不涉及数学公式,所以可能不需要。最后验证是否符合用户的所有指令,特别是系统级指令中的引用标识和结构要求。</think>### JavaBean概念及使用方法详解 #### 一、JavaBean核心概念 JavaBeanJava语言中一种可重用的组件规范,主要用于装数据和业务逻辑。广义上,符合以下规范的Java都可称为JavaBean: 1. 含无参构造函数 2. 属性私有化(private修饰) 3. 通过公共的getter/setter方法访问属性[^2] 4. 实现`java.io.Serializable`接口(非强制但推荐) 其核心作用是实现数据装与业务逻辑分离,尤其在JSP开发中用于解耦视图层与数据处理层[^1][^3] #### 二、核心规范详解 1. **属性定义** 采用私有属性+公共访问方法的模式: ```java public class User { private String username; // 私有属性 private int level; // 公共getter方法 public String getUsername() { return username; } // 公共setter方法 public void setUsername(String name) { this.username = name; } } ``` 2. **方法规范** - Getter方法命名:`getXxx()`(布尔型可用`isXxx()`) - Setter方法命名:`setXxx()` - 方法访问修饰符必须为`public`[^2] #### 三、JSP中的使用步骤 1. **定义JavaBean** 创建符合规范的Java并编译到`WEB-INF/classes`目录 2. **在JSP中调用** 使用标准动作标签操作JavaBean: ```jsp <%-- 实例化Bean --%> <jsp:useBean id="user" class="com.example.User" scope="session"/> [^4] <%-- 设置属性值 --%> <jsp:setProperty name="user" property="username" value="John"/> <%-- 获取属性值 --%> <jsp:getProperty name="user" property="username"/> ``` #### 四、典型应用场景 1. 表单数据处理(自动映射请求参数到Bean属性) 2. 业务逻辑装(如数据验证、数据库操作) 3. 实现MVC架构中的Model层[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值