JavaBean

在JSP中使用JAVABEAN 假设JSP页面获取用户数据、与数据库交互,最后向用户显示结果。此JSP页面包括应用程序的业务和表示逻辑。业务逻辑包括与数据库交互的代码,而表示逻辑包括将结果格式化进行显示的代码。设计员可能不了解Java的任何知识,但由于页面上会嵌入Java代码,因而在开发表示逻辑时会遇到困难。同样,编写Java代码的程序员可能不熟悉在页面上创建用户界面的所有格式标记。JSP可以使用JavaBean将开发Web应用程序涉及的Web设计员和程序员的角色分开。 阅读详情
1,什么是JavaBean

¨JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:
这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。
2,JavaBean的属性
¨JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、getter方法,setter方法称为属性修改器,getter方法称为属性访问器。
¨属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,name属性的修改器名称为setName,password属性的修改器名称为setPassword。
¨属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如,name属性的访问器名称为getName,password属性的访问器名称为getPassword。
¨一个JavaBean的某个属性也可以只有set方法或get方法,这样的属性通常也称之为只写、只读属性。
3,在JSP中使用JavaBean
¨JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:
¨<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。
¨<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
¨<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。
<jsp:include>  <jsp:forwort>    <jsp:promer>

4,<jsp:useBean>标签

¨<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象:
如果存在则直接返回该JavaBean对象的引用。
如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中
¨常用语法:

  <jsp:useBean id="beanName"class="package.class"

  scope="page|request|session|application"/>
üid属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
üclass属性用于指定JavaBean的完整类名(即必须带有包名)。
üscope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。
5,<jsp:useBean>标签

¨<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象:
如果存在则直接返回该JavaBean对象的引用。
如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中
¨常用语法:

  <jsp:useBean id="beanName"class="package.class"

  scope="page|request|session|application"/>
üid属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
üclass属性用于指定JavaBean的完整类名(即必须带有包名)。
üscope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。
6,<jsp:useBean>执行原理

¨<jsp:useBeanid="currentDate" class="java.util.Date"/>
¨翻译成的Servlet源码:

java.util.Date currentDate = null;

synchronized (_jspx_page_context) {

  currentDate= (java.util.Date)           

                         _jspx_page_context.getAttribute("currentDate",PageContext.PAGE_SCOPE);

  if(currentDate == null){

  currentDate= new java.util.Date();

  _jspx_page_context.setAttribute("currentDate",

  currentDate,PageContext.PAGE_SCOPE);

  }

}

7,<jsp:setProperty>标签

¨<jsp:setProperty>标签用于设置和访问JavaBean对象的属性。
¨语法格式:

<jsp:setPropertyname="beanName"

{

  property="propertyName"value="{string | <%= expression %>}" |

  property="propertyName" [param="parameterName" ] |

  property= "*"

}/>
üname属性用于指定JavaBean对象的名称。
üproperty属性用于指定JavaBean实例对象的属性名。
üvalue属性用于指定JavaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式。为字符串时,该值会自动转化为JavaBean属性相应的类型,如果value的值是一个表达式,那么该表达式的计算结果必须与所要设置的JavaBean属性的类型一致。
üparam属性用于将JavaBean实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动转换成要设置的JavaBean属性的类型。
8,带标签体的<jsp:useBean>标签

¨语法:

  <jsp:useBean ...>

  Body

  </jsp:useBean>
¨功能:

  Body部分的内容只在<jsp:useBean>标签创建JavaBean的实例对象时才执行。
9,<jsp:getProperty>标签

¨<jsp:getProperty>标签用于读取JavaBean对象的属性,也就是调用JavaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。
¨语法:

  <jsp:getPropertyname="beanInstanceName" property="PropertyName" />
üname属性用于指定JavaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性值相同。
üproperty属性用于指定JavaBean实例对象的属性名。
¨如果一个JavaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。
10,JSP开发模式
¨SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式。
¨JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。

¨Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。


11,案例

1,UserBean.java

<%@ page language="java" import="java.util.*,www.youkuaiyun.com.blank.domain.Goods" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'usebean.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  <body>
        <!-- 往page域中存入一个good的对应的值 -->
        <%
          pageContext.setAttribute("good", new Goods());
         %>
 
       
       <!-- 去实例化它
          但:首先要去对应的域中查找该javabean组件对象,如果存在就不创建(及不会执行  hahahahha )
        -->
       <jsp:useBean id="good" class="www.youkuaiyun.com.blank.domain.Goods" scope="page">
          hahahahha
       </jsp:useBean>
       
       <!-- 赋值 -->
       <jsp:setProperty property="name" name="good" value="chenhj"/>
      <%--  <jsp:setProperty property="price" name="good" value="20"/> --%>
       <jsp:setProperty property="count" name="good" value="20"/>
       <%-- <jsp:setProperty property="age" name="good" value="20"/> --%>
      <%--  <jsp:setProperty property="createDate" name="good" value="<%=new Date() %>"/> --%>
 
      
 
        <!-- 显示值 -->
        <jsp:getProperty property="name" name="good"/><br/>
        <jsp:getProperty property="price" name="good"/><br/>
        <jsp:getProperty property="count" name="good"/><br/>
        <jsp:getProperty property="createDate" name="good"/>
        <jsp:getProperty property="age" name="good"/>
        
        
 
       
  </body>
</html>




2,Goods

package www.youkuaiyun.com.domain;

import java.util.Date;

public class Goods {
     private Integer id;
     private String name;
     private String img;
     private Integer count;
     private Date addDate;
     private int i;
    public int getI() {
        return i;
    }
    public void setI(int i) {
        this.i = i;
    }
    public Goods() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Goods(Integer id, String name, String img, Integer count,
            Date addDate) {
        super();
        this.id = id;
        this.name = name;
        this.img = img;
        this.count = count;
        this.addDate = addDate;
    }
    public Goods(Integer id, String name, String img, Integer count) {
        super();
        this.id = id;
        this.name = name;
        this.img = img;
        this.count = count;
    
    }
    public Goods(Integer id, String name, String img) {
        super();
        this.id = id;
        this.name = name;
        this.img = img;
    
    }
    public Goods(Integer id, String name) {
        super();
        this.id = id;
        this.name = name;
        
    
    }
    public Goods(Integer id) {
        super();
        this.id = id;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    public Integer getCount() {
        return count;
    }
    public void setCount(Integer count) {
        this.count = count;
    }
    public Date getAddDate() {
        return addDate;
    }
    public void setAddDate(Date addDate) {
        this.addDate = addDate;
    }
    @Override
    public String toString() {
        return "Goods [id=" + id + ", name=" + name + ", img=" + img
                + ", count=" + count + ", addDate=" + addDate + ", i=" + i
                + "]";
    }
    public void study(String name){
        System.out.println("------study--------"+name);
    }
    private void getNum(Integer num){
        System.out.println("---------num-------"+num);
    }
}


在JSP中实现JAVABEAN 创建Web应用程序以连接数据库并检索作者名、地址、城市、州及邮政编码等与作者的详细信息。JavaBean组件应接受作者ID、驱动程序名及URL作为参数。信息要从authors表中检索。 阅读详情

相关推荐

用EL操作JAVABEAN属性

Smart SoftWare Inc.想要开发一款维护雇员数据(例如姓、名字、职位)的Web应用程序。该组织决定将雇员数据存储在一个JavaBean中。另外,它还希望该Web应用程序能让用户从此JavaBean中检索数据并用JSP页面和EL显示。

RZer的博客 1160

JavaBean简介及使用

一、JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点: 1.可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。

Joywy的专栏 23万+

计算机视觉之ResNet

RestNet是2015年由微软团队提出的,在当时获得分类任务,目标检测,图像分割第一名。该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。实验结果显示,残差网络更容易优化,并且加深网络层数有助于提高正确率。在ImageNet上使用152层的残差网络(VGG net的8倍深度,但残差网络复杂度更低)。对这些网络使用集成方法实现了3.75%的错误率。获得了ILSVRC 2015竞赛的第一名。原文链接这是一篇计算机视觉领域的经典论文。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

JavaBean的使用实例、原理

最近拿起之前看过的WEB书准备再翻看翻看,到了JavaBean这里觉得有必要写一点东西帮助刚接触的小白。一、JavaBean的含义       JavaBean是使用Java语言开发的一个可重用组件,能使Html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类,在框架中或其他方面也管它叫做PO,VO,TO等。例如:pack...

JUST DO IT,就是干IT! 1万+

【Unity人物动画】SALSA With RandomEyes (语音生成嘴型/人物说话) 使用

SALSA使用探索 之前做项目时想做人物说话的嘴部动作,因为我们的语音是AI合成的,语音片段很多,如果能根据语音生成嘴部动画,那将极大便利我们的工作。后面是找到了SALSA的这款插件,并摸索出使用方法。 1 插件介绍 官方网站:https://crazyminnowstudio.com/ 一个能做2D纸片人和3D人物模型嘴部和眼睛动画的插件,由两人组成的独立工作室(疯狂米诺工作室)开发。 插件全名为SALSA With RandomEyes,2014年上架Asset Store,目前是已下架,替换为新版本

里约热内驴的博客 1万+

linux和mac安装+配置circos(

一定要下载完这两个包,GD才会work,要不然会报错,且-modules显示也是fail。官网的教程说的很明白,但是很多包都已经过时了需要在网上找。一般来讲,所有包的安装都不会太困难,除了GD。1.是因为官网给的链接下出来的tgz无法解压。2.我的电脑安装后GD照样是fail的。,进入这个地址下一个.tgz。第二点的原因在于,官网的情况。,进入这个地址,按部就班。GD安装困难有以下几点。搞了一天终于配置成功。

xiufan1的博客 551

JavaBean详解

JavaBean的概念 JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。 JSP与JavaBean搭配使用的优点 使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护。 可以降低开发JSP网页人员对Java编程能

technologyleader的专栏 1万+

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

javaBean

javaBean 概述 起初,JavaBean的目的是为了将可以重复使用的代码进行打包,在传统的应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮、文本框等,这样的JavaBean称之可视化的JavaBean。随着技术的不断发展与项目的需求,目前JavaBean主要用于实现一此业务逻辑或封装一些业务对象,由于这样的JavaBean并没有可视化的界面,所以又称之为非可视化的Jav...

没有到不了的明天 7035

淘宝滑块验证码破解:Python模拟鼠标轨迹过关详解

本文全面解析了淘宝滑块验证码的破解流程,从机制分析、图像处理、轨迹模拟到自动化实现,提供了完整的Python解决方案。随着2026年风控技术的升级,单纯依靠轨迹模拟已经难以达到高通过率,未来趋势是结合强化学习生成更自然的轨迹,并利用深度神经网络进行端到端的验证码绕过。此外,各大平台正逐步推广"无感验证"和"行为式验证码",将验证融入到用户正常操作中,这对爬虫技术提出了更高的挑战。技术本身是中立的,关键在于使用者的目的。希望本文能帮助开发者更好地理解验证码对抗技术,从而设计出更安全的防御系统。

2201_76125261的博客 96

RKNN 端侧部署必看:YOLOv11 Pose 姿态估计模型转换与性能优化实战

随着人工智能技术在边缘计算领域的快速发展,姿态估计作为计算机视觉的重要分支,在智能监控、人机交互、体感游戏等场景中展现出巨大的应用潜力。本文深入研究了YOLOv11 Pose模型在Rockchip RKNN平台上的部署方案,从理论基础、模型转换、平台优化到实际部署进行了全面阐述。通过详细的技术分析和实验验证,证明了RKNN平台能够有效提升YOLOv11 Pose的推理性能,在RK3588硬件平台上实现了高达100 FPS的实时姿态检测,为边缘计算场景下的姿态估计应用提供了高效的解决方案。

m0_71589036的博客 183

什么是JavaBean,JavaBean作用

JavaBean定义: 一个Java类满足以下2点 ,就可以称为JavaBean: public 修饰的类 ,public 无参构造 所有属性(如果有) 都是private,并且提供set/get (如果boolean 则get 可以替换成is) javaBean分两种 第一种:封装数据的JavaBean 这种JavaBean也被叫做实体类,一般来说对应的是数据库中的一张表,例如这样的↓: public class UserDemo { private int id; private Strin

qq_45895520的博客 1万+

STM32实现等精度测频

上一章介绍了利用STM32的TIM的捕获功能实现频率测量的方法,但测量误差受被测信号频率的影响,不适合测量频率变化较大的。本章将介绍等精度测频的方法以及STM32的实现。STM3...

zhang062061的专栏 3457

JavaBean技术之JavaBean工具、规范和属性

一、JavaBean概述 JavaBean组件就是利用Java语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。如果将一个应用程序比做一间空房间,那么这些JavaBean就好比房间中的家具。 JavaBean的技术特点: 1.一次性编写 一个成功的JavaBean组件重用时不需要重新编写,开发者只需要根据需求修改和升级代码即可。 2.任何

qq_44111805的博客 3548

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JavaBean总结

一、JavaBean出现的目的 由于只用JSP开发会发现使用了很多的Scriptlet,会使得jsp文件非常混乱。如果使用了JavaBean,则可以大大减少JSP中代码量。 JSP的理想状态是只负责显示,而不负责处理。 二、JavaBean介绍 JavaBean说的通俗点就是一个Java类用于JSP中。通过或者import导入。 JavaBean导入的类的约定:

xiazdong 5929

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

javabean java,使用JAVABEAN报错,求救解决办法

当前位置:我的异常网» Java Web开发»使用JAVABEAN报错,求救解决办法使用JAVABEAN报错,求救解决办法www.myexceptions.net网友分享于:2013-02-16浏览:10次使用JAVABEAN报错,求救环境JDK+TOMCAT+SQLSERVER 2000问题:JSP文件调用JAVABEAN错误(JAVABEAN能够正确编译并能够正确生成CLASS...

weixin_42162171的博客 704

JavaBean知识、原理以及JavaBean的总结

*sun 很早提出的 javabean 的概念是解决可视的 application 的模块化提出来的,但由于 java 在客户端开发实在不怎么样,所以 sun 没有在这方面再进行,作为界面模块化开发的 javabean 实际上已经死了。但是随着 web 应用的兴起 jsp 的出现, jsp 需要这样的概念,功能 / 表现分开,将功能封装在一个模块中,以便实现最大化的代码复用,就又拾起这个 javabean 将它用在 web/jsp 开发上。1. javaBean 是一种(符合要求的) java 类。

2501_90245696的博客 1091

JavaBean是什么

Java 之父 James Gosling 在设计 Java 语言,为 Java 组件中封装数据的 Java 类进行命名时,看到了桌子上的咖啡豆,于是灵机一动,就把它命名为“JavaBean”。从此,"JavaBean"开始了它罪恶的一生。 定义 JavaBean 是遵守 Java API 规范的 Java类,它是一个可以重复使用的组件。 JavaBean必须满足以下三个条件: 是一个公共类,并提供公有的无参构造方法 属性必须私有化 必须有对应的get/set方法 只要是满足了以上3个要求的、是用Jav

CYW2019_HUST的博客 2382

javabean学习笔记

1、JAVA命名规范 包的命名   (全部小写,由域名定义) 类的命名      (单词首字母大写) 属性名称      (首字母小写,其余字母大写) 方法的命名  (首字母小写,字母开头大写) 常量的命名  (全部大写 ,常加下划线) 2、编写JavaBean时,必须满足一些要求: 1.JavaBean必须放在一个包中,即必须包含package 2. JavaBean必须

luckyyulin的专栏 1654

关于JAVABEAN的用法

JAVABEAN和SERVLET都是JAVA类,都具有一定的规范,严格按规范写就可以简化代码,并具有一定的接口和方法。 关于JAVABEAN INDEX.JSP <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE...

weixin_45003282的博客 141
上一篇: 反射
下一篇: jsp标签
java_zhaoyanli
博客等级 码龄12年 61粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值