JSP:Javabean

       起初,JavaBean的目的是为了将可以重复使用的代码进行打包,在传统的应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮、文本框等,这样的JavaBean称之可视化的JavaBean

     随着技术的不断发展与项目的需求,目前JavaBean主要用于实现一此业务逻辑或封装一些业务对象,由于这样的JavaBean并没有可视化的界面,所以又称之为非可视化的JavaBean

      可视化的JavaBean一般应用于Swing的程序中,在Java Web开发中并不会采用,而是使用非可视化的JavaBean,实现一此业务逻辑或封装一些业务对象,下面就通过实例来了解一下非可视化的JavaBean

JavaBean 有广义的和狭义的两种概念。

广义的  JavaBean  是指普通的  Java  类;

狭义的JavaBean 是指严格按照 JavaBean 规范编写的 Java 类

使用JavaBean的好处:

可以使得JSP页面变得清晰;

节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发);

降低系统维护的难度

为JSP应用带来了更多的可伸缩性,使系统变得健壮和灵活。

JavaBean的分类

可视的JavaBean:传统的JavaBean应用于可视化界面(如java图形界面中使用的按钮、文本框或列表框等)。

非可视化JavaBean:封装逻辑、封装数据,与JSP搭配使用。

JavaBean有以下特征(编写规范):

JavaBean是一个public

一定使用了package语句进行打包,并且声明的打包路径非sun公司声明使用的路径。

有一个无参数的构造方法

属性一般是私有的(即用private修饰),以保证数据的完整性和封装性

对属性值的获取有相应的getXxx()方法,并且此方法是公有的(即用public修饰)若要获取的属性为boolean类型则可以使用isXxx()方法

对属性值的设置有相应的setXxx()方法,并且此方法也是公有的(即用public修饰)

package bean;

public class SimpleBean{

  private String name;

  private int number;

  public SimpleBean(){   }

  public void setName(String name){

this.name = name;

}

public void setNumber(int number){

this.number = number;

}

public String getName(){

return name;

}

public int getNumber(){

return number;

}

}

编写JavaBean时,需要将其放入某个包中,这样才能被JSP页面访问到

保存JavaBeanJavaB

1:一个JavaBean编写完以后,需要将它编译成“.class”文件。

第2:并将此“.class”文件放到本次应用的WEB-INF\classes目录之下,并且需要根据Bean的包名,在classes下再建立相应的子目录。

例如package ch7.test     则该bean.class文件需要放置在“WEB-INF\classes\ch7\test”

使用JavaBean

1步:在 JSP页面中通过import指令引入bean

格式<%@ page import=”ch7.test.*”%>

2步:通过useBean标记来创建bean对象

格式

<jsp:useBean id=”bean_name” class=”创建bean的类” scope=”bean的有效范围“> </jsp:useBean>

 <jsp:useBean id=”bean_name” class=”创建bean的类” scope=”bean的有效范围” />

其中:1.创建bean的类要带有完整的包名,如ch7.test.Circle

2.scope表示bean的取值范围,可取page,session,requestapplication,代表不同的作用范围。

m JavaBean 的范围设为 page 时,表示这个 JavaBean 的生命周期只在一个 页面内 有效。
m JavaBean 的范围设为 request 时,这个 Bean 整个请求的范围内 都有效。
m JavaBean 的范围设为 session 时,表示 Bean 可以在当前 HTTP 会话的生命周期 内被所有页面访问。
m 设为 application 范围内的 Bean 生命周期是 最长的 ,从创建了这个 Bean 开始,就可以在任何使用相同 application JSP 文件中使用这个 Bean

3步,在jsp页面中,可以通过直接调用bean的方法来获取和修改bean的属性值,还可以通过jsp动作标记来获取和修改bean的属性。

直接调用bean的方法:girl.setradius(100)等。

动作标签方法:<jsp:getProperty><jsp:setProperty>

m 一个 JavaBean 编写完以后,需要将它编译成“ .class” 文件,并将此“ .class” 文件 ( 连同其目录 ) 放到本次应用的WEB-INF\classes目录之下。 JSP 中使用 JavaBean的标签
m JavaBean 的标签主要有三个:
m
m < jsp:useBean > 标签:在网页中创建一个 Bean 对象
m
m < jsp:setProperty > 标签:用于为 Bean 对象 中的属性赋值
m
m < jsp:getProperty > 标签:用于获取 Bean 对象中 属性的值
m < jsp:useBean > 标签用来创建一个 Bean 对象,其语法为:

    <jsp:useBean id=“beanname” class=“package.class” [scope=“page|request|session|application”] />

m 创建了“ package.class 类的一个对象,对象的名字是“ beanname
m scope 的值指定了 该对象 作用范围,可能的取值有 4 个: page request session application
m
m 例: < jsp:useBean id=" myBean " scope="request" class=" bean.SampleBean"/>
m < jsp:setProperty > 标签用来设置 Bean 对象的属性。其语法有多种:

(1). <jsp:setProperty name=“beanName

  property=“propertyName

  value=“propertyValue” />

  用来为bean的属性赋值

    其中name指出是在操作哪个beanproperty指出对该bean的哪个属性赋值,value用来指定给属性赋的值。

   例:<jsp:setProperty name="myBean"   property="sample" value="HelloJSP"/>

m (2). < jsp:setProperty name=“ beanName

        property=“propertyName

        param=“paramName” />

m form 表单中参数的名字和 Bean 中属性名不相同时, 这种用法表示将一个传入参数的值赋给 bean 的某个属性。
m 其中 name 指出是在操作哪个 bean property 指出对该 bean 的哪个属性赋值,而 param表示传入参数的名字。
m < jsp:getProperty > 标签用来获取 Bean 对象的属性值,并显示在页面上,其语法如下:

  <jsp:getProperty name=“beanname

  property=“propertyname” />

  name指出了要获取哪个bean的属性值,

   property指出要获取该bean的哪个属性值

例:<jsp:getProperty name="myBean" property="sample"/>

m < jsp:useBean id=“ beanname ” class=“ package.class ” [scope=“ page|request|session|application ”] />

    class的值要与bean的类名相同id作为对象名,可任取

m < jsp:getProperty name=“ beanname”property =“ propertyname ” />

  中name的值要与useBean中的id的值相同propertyname要与bean的属性名相同

m
m   < jsp:setProperty name=“ beanName

    property=“propertyName” value=“propertyValue” />中的name的值要与useBean中的id的值相同,propertyname要与bean的属性名相同。

m < jsp:setProperty name=“ beanName

    property=“propertyName”/>中,form表单中的参数名、 propertyNamebean中属性名三者要相同

m < jsp:setProperty name=“ beanName ”, property=“ propertyName ” param=“ paramName ”/> propertyName bean 中属性名要相同 , paramName 要和 form 表单中属性名相同
m

mJavaBean的范围
m 范围有四种: page request session application
m 例: < jsp:useBean id=" logBean " scope="page" class=“ mypack.LogBean " />
m JavaBean 的范围设为 page 时,表示这个 JavaBean 的生命周期只在一个页面内有效。
m JavaBean 的范围设为 request 时,这个 Bean 在整个请求的范围内都有效。
m JavaBean 的范围设为 session 时,表示 Bean 可以在当前 HTTP 会话的生命周期内被所有页面访问。
m 设为 application 范围内的 Bean 生命周期是最长的,从创建了这个 Bean 开始,就可以在任何使用相同 application JSP 文件中使用这个 Bean

7.2 JavaBean的应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/177999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】vue中合并表格行

做平台功能时&#xff0c;遇到一个需求是需要将表格某列有相同值时进行合并展示&#xff0c;比如 1、通过在Element中得知需要在表格中增加span-method方法 <el-table:data"tableData":span-method"cellMerge"borderstyle"width: 100%; margin-to…

Linux操作系统使用及C高级编程-D14共用体和枚举

共用体 不同数据类型可以使用共同的存储区域。和结构体的本质区别是&#xff1a;使用内存方式&#xff0c;其中共用体是使用同一块内存 1、 选择最大成员的大小 2、要能够整除成员大小&#xff0c;下图中un1中char s[7]是7个字节&#xff0c;但要遵循能整除int&#xff0c;所以…

「Docker」如何在苹果电脑上构建简单的Go云原生程序「MacOS」

介绍 使用Docker开发Golang云原生应用程序&#xff0c;使用Golang服务和Redis服务 注&#xff1a;写得很详细 为方便我的朋友可以看懂 环境部署 确保已经安装Go、docker等基础配置 官网下载链接直达&#xff1a;Docker官网下载 Go官网下载 操作步骤 第一步 创建一个…

scrapy框架流程

1、Scrapy从Spider子类中提取start_url,然后构造为request请求对象 2、将request请求对象传递给爬虫中间件 3、将request请求对象传递给Scrapy引擎&#xff08;核心代码&#xff09; 4、将request请求对象传递给调度器&#xff08;它负责对多个request安排&#xff0c;好比交…

你不知道的库:库的种类,作用和加载方式

你不知道的库&#xff1a;库的种类&#xff0c;作用和加载方式 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客…

基于单片机声光控智能路灯系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机声光控智能路灯系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的声光控智能路灯系统是一种利用单片机技术实现智能控制的路灯系统。它通过感知环境音量和光照强度…

Differences between package.json and pnpm-lock.yaml

1.pnpm-lock.yaml 是pnpm包管理工具生成的确保依赖包的版本在所有的环境里面都相同对依赖包的任何操作都会更新在该文件中&#xff0c;因此&#xff0c;需要确保提交到代码仓库中。包含了解析的依赖项和版本号。如下图&#xff1a; 2.package.json 列出应用所需的依赖和元数…

深入理解Java注解的实现原理以及前世今生

深入理解Java注解的实现原理以及前世今生 小雪初寒&#xff0c;请添衣&#xff0c;冬棋如意&#xff0c;待良人&#xff0c;望归期。 1.Java注解的前世今生 Java注解是一种元数据标记&#xff0c;它提供了一种在Java代码中添加元数据&#xff08;注释&#xff09;的方式。注解…

“图纸保密大作战:上海迅软DSE解决方案守护机械公司核心资料

机械行业是我国重要的工业制造行业之一&#xff0c;相关企业在发展中往往需要用到ERP、PDM、PLM等系统来对产品信息进行管理&#xff0c;其中便涉及到大量文档和图纸等重要数据。然而随着业务的快速发展和数字化转型&#xff0c;机械行业也面临着如数据泄露、外来袭击攻击、内部…

Nuxt.js Next.js Nest.js

Nuxt.js和Next.js都是服务端渲染框架(SSR)&#xff0c;属于前端框架,Nest.js则是node框架,属于后端框架。 其中Nuxt.js是vue的ssr框架&#xff0c;Next.js是react的ssr框架。 都是比vue和react更上层的前端框架。 文章目录 1.SSR2.Nuxt2.1 Nuxt的下载2.2 Nuxt的集成2.3 Nuxt…

安装pytorch

cuda≤11.6&#xff0c;观察控制面板 观察torch对应cuda版本 https://download.pytorch.org/whl/torch/ 安装cuda11.6.0 CUDA Toolkit Archive | NVIDIA Developer cmd输入nvcc -V 编辑国内镜像源 .condarc anaconda prompt输入 查看环境 conda env list 安装py3.9…

c语言:用迭代法解决递归问题

题目&#xff1a; 解释&#xff1a;题目的意思就是用迭代法的空间和时间复杂的太高了&#xff0c;需要我们减小空间与时间的复杂度&#xff0c;我就想到了迭代法&#xff0c;思路和代码如下&#xff1a; #include <stdio.h> //这里是递归法转迭代法 int main() {int x,i…

【送书福利-第二十八期】《AIGC:让生成式AI成为自己的外脑》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

LeetCode(31)无重复字符的最长子串【滑动窗口】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 无重复字符的最长子串 1.题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&…

Qt实现图片旋转的几种方式(全)

目录 一、用手搓&#xff08;QPainter&#xff09; 二、使用 QGraphicsView 和 QGraphicsPixmapItem 三、使用 QTransform 实现图像旋转 四、利用 OpenGL 实现旋转图像的效果有几种不同的方法&#xff0c;其中常见的包括&#xff1a; 手动旋转绘制&#xff1a; 使用 QPaint…

【Qt开发流程】之富文本处理

描述 Scribe框架提供了一组类&#xff0c;用于读取和操作结构化的富文本文档。与Qt中以前的富文本支持不同&#xff0c;新的类集中在QTextDocument类上&#xff0c;而不是原始文本信息。这使开发者能够创建和修改结构化的富文本文档&#xff0c;而不必准备中间标记格式的内容。…

【C++】泛型编程 ⑫ ( 类模板 static 关键字 | 类模板 static 静态成员 | 类模板使用流程 )

文章目录 一、类模板使用流程1、类模板 定义流程2、类模板 使用3、类模板 函数 外部实现 二、类模板 static 关键字1、类模板 static 静态成员2、类模板 static 关键字 用法3、完整代码示例 将 类模板 函数声明 与 函数实现 分开进行编码 , 有 三种 方式 : 类模板 的 函数声明…

linux ld 链接器学习笔记

ld链接器笔记 1. 首先编写一段汇编代码 这里的汇编语法时 AT&T语法,是gcc原生支持的语法,底层使用 gas(gnu assembler) 完成汇编,相较于 Intel x86语法, AT&T 语法要更加古老,因此大多数人更加偏向于使用 Intel 的语法. nasm 编译器支持x86语法.自从2.10版本&#xf…

问鼎web服务

华子目录 www简介常见Web服务程序介绍&#xff1a;服务器主机主要数据浏览器网址及http介绍urlhttp请求方法 http协议请求的工作流程www服务器类型静态网站动态网站 快速安装Apache安装准备工作httpd所需目录主配置文件 实验操作 www简介 Web网络服务也叫www&#xff08;world…