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的应用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防火墙部署模式 -- 镜像流量(旁路模式)

镜像流量&#xff08;旁路模式&#xff09; 如图&#xff0c;与单臂路由模式不同&#xff0c;旁路模式中&#xff0c;PC的流量不会流经防火墙&#xff0c;就算防火墙宕机也不会影他们之间的数据传输。 镜像的原理是交换机把被镜像端口的流量复制一份&#xff0c;发到监听端口&…

寻找二叉树最近公共祖先

二叉树为BST LCR 193. 二叉搜索树的最近公共祖先 1.1 递归 利用BST的性质 p root 或者 q root ,显然根为公共祖先p < root < q 或者 p > root > q,显然p&#xff0c;q分别位于root的一颗子树上&#xff0c;故根为公共祖先max{p,q} < root ,显然 p 和q 均在…

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

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

Axios 请求响应结果的结构

发送请求 this.$axios.get(https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/,{params: {id: 10}}).then(res > {console.log(res)})输出返回结果 confing 请求时的配置对象&#xff0c;如果请求的url&#xff0c;请求的方法&#xff0c;请求的参数&#xff0c…

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

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

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、认识系统接口&#xff0c;操作文件 &#xff08;一&#xff09;认识文件描述符 &#xff08;二&#xff09;举例 &#xff08;三&#xff09;…

2023年中国油墨树脂主要环节、产量及市场规模分析[图]

油墨树脂是指用于油墨制造中的一种高分子材料&#xff0c;主要用于改善油墨的粘性、流动性、光泽度和耐磨性等性能。其主要成分为合成树脂&#xff0c;如聚酯、聚酰胺、聚丙烯酸酯等。油墨树脂在油墨制造中的应用非常广泛&#xff0c;可以用于各种类型的油墨&#xff0c;包括印…

github访问不了问题

git clone github上的项目的时候&#xff0c;不是访问不了&#xff0c;就是克隆过程被中断了 最近找到一个代理&#xff0c;从代理那里clone而不是github上 GitHub代理 – 初果编程

python BDD 的相关概念

在Python 语言中进行BDD的规格和测试文件的编写的时候&#xff0c;常常会遇到下面的概念&#xff1a; Fixture : 测试设施。设定测试环境的预设状态或值的机制。Background&#xff1a; 背景。所有场景的公共部分。Scenario&#xff1a; 场景。Given &#xff1a; 前置条件Whe…

centos7 安装node.js,不用wget也不用解压文件

更新系统&#xff1a;首先&#xff0c;更新系统的软件包列表和已安装的软件包。在终端中以root用户或具有sudo权限的用户身份运行以下命令&#xff1a; sudo yum update添加Node.js源&#xff1a;CentOS 7默认的软件仓库中可能不包含最新的Node.js版本。因此&#xff0c;我们需…

[leetcode 数位运算] 2939. 最大异或乘积 M

给你三个整数 a &#xff0c;b 和 n &#xff0c;请你返回 (a XOR x) * (b XOR x) 的 最大值 且 x 需要满足 0 < x < 2n。 由于答案可能会很大&#xff0c;返回它对 109 7 取余 后的结果。 注意&#xff0c;XOR 是按位异或操作。 示例 1&#xff1a; 输入&#xff1…

git中的分支管理:git branch,git checkout,解决git中的分支冲突的方法【Git学习三】

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;Git等软件工具技术的使用 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要…

vue2 识别页面参数中的html

在Vue 2中&#xff0c;你可以使用v-html指令来识别页面参数中的HTML内容。v-html指令允许你将HTML代码作为Vue模板的一部分进行渲染。 以下是一个示例&#xff0c;演示了如何在Vue 2中使用v-html指令来识别页面参数中的HTML内容&#xff1a; <template><div v-html&…

C语言计算一个数的 n 次方

1、要求 计算一个数的 n 次方&#xff0c;例如: 2 3&#xff0c;其中 2 为基数&#xff0c;3 为指数。 2、使用for循环 #include <stdio.h> int main(){int i,j,k,l1;printf("请输入基数和指数&#xff1a;");scanf("%d %d",&i,&j);for(k…

双流网络论文精读笔记

精读视频&#xff1a;双流网络论文逐段精读【论文精读】_哔哩哔哩_bilibili Two-Stream Convolutional Networks for Action Recognition in Videos 传统的神经网络难以学习到物体的运动信息&#xff0c;双流网络则通过光流将物体运动信息抽取出来再传递给神经网络 给模型提供…

Golang 中的良好代码与糟糕代码

最近&#xff0c;有人要求我详细解释在 Golang 中什么是好的代码和坏的代码。我觉得这个练习非常有趣。实际上&#xff0c;足够有趣以至于我写了一篇关于这个话题的文章。为了说明我的回答&#xff0c;我选择了我在空中交通管理&#xff08;ATM&#xff09;领域遇到的一个具体用…

linux部署jar 常见问题

1.java -jar xxx.jar no main manifest attribute, in xxx.jar 一.no main manifest attribute, in xxx.jar 在pom.xml文件中加入&#xff1a; <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifac…

C语言每日一题(35)有效的括号

力扣网 20 有效的括号 题目描述 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右…

CountDownLatch和CyclicBarrier

JUC&#xff08;Java.util.concurrent&#xff09;是Java 5中引入的一个并发编程库&#xff0c;它包含了许多用于多线程处理的工具类和接口。JUC主要提供了以下特性&#xff1a; 线程池&#xff1a;线程池可以提高线程的使用效率&#xff0c;避免频繁地创建和销毁线程&#xff…

Kotlin学习——hello kotlin 函数function 变量 类 + 泛型 + 继承

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…