一.什么是JavaBean

JavaBean是特殊的Java类,使用Java语言书写,并且遵守规范:

  • 提供一个默认的无参构造函数。
  • 需要被序列化并且实现了Serializable接口。
  • 可能有一系列可读写属性。
  • 可能有一系列的"getter"或"setter"方法。

二.定义JavaBean

  1. package com.cathy.domain;
  2.  
  3. public class Category implements java.io.Serializable{
  4. public Category(){}
  5. private int cateId;
  6. private String cateName;
  7.  
  8. public int getCateId() {
  9. return cateId;
  10. }
  11.  
  12. public void setCateId(int cateId) {
  13. this.cateId = cateId;
  14. }
  15.  
  16. public String getCateName() {
  17. return cateName;
  18. }
  19.  
  20. public void setCateName(String cateName) {
  21. this.cateName = cateName;
  22. }
  23. }

  

三、访问JavaBean

1. <jsp:useBean> 标签可以在JSP中声明一个JavaBean,语法格式如下:

  1. <jsp:useBean id="bean 的名字" scope="bean 的作用域" />

其中scope的值可以是page,request,session或application

2.设置和获取JavaBean属性

<jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法获取属性,使用 <jsp:setProperty/> 标签调用 setter 方法设置属性。语法格式:

  1. <jsp:useBean id="id" class="bean 类" scope="bean 作用域">
  2.  
  3. <jsp:setProperty name="bean 的 id" property="属性名"
  4. value="value"/>
  5. <jsp:getProperty name="bean 的 id" property="属性名"/>
  6. ...........
  7.  
  8. </jsp:useBean>

  

其中name属性指的是Bean的id属性,property属性指的是想要调用的getter或setter方法

四、示例

1.示例:在当前jsp页面设置和获取javabean属性

  1. <jsp:useBean id="category" class="com.cathy.domain.Category">
  2. <jsp:setProperty name="category" property="cateId" value="2"></jsp:setProperty>
  3. <jsp:setProperty name="category" property="cateName" value="女装"></jsp:setProperty>
  4. </jsp:useBean>
  5. <div>
  6. id:<jsp:getProperty name="category" property="cateId"></jsp:getProperty>
  7. </div>
  8. <div>
  9. name:<jsp:getProperty name="category" property="cateName"></jsp:getProperty>
  10. </div>

  

2.示例:在edit.jsp 页面form表单提交信息,在detail.jsp页面中显示。

edit.jsp

  1. <form action="/category/detail" method="post">
  2. 商品id:<input type="number" name="cateId">
  3. 商品名称:<input type="text" name="cateName">
  4. <input type="submit" value="提交">
  5. </form>

  

detail.jsp

如果表单中的属性名称和JavaBean中属性对应,那么可以简化jsp:setProperty写法,直接property="*"

  1. <jsp:useBean id="category" class="com.cathy.domain.Category">
  2. <jsp:setProperty name="category" property="*"></jsp:setProperty>
  3. </jsp:useBean>
  4. <table>
  5. <tr>
  6. <td>id:</td><td><jsp:getProperty name="category" property="cateId"></jsp:getProperty></td>
  7. </tr>
  8. <tr><td>名称:</td><td><jsp:getProperty name="category" property="cateName"></jsp:getProperty></td></tr>
  9. </table>

  

问题:通过表单提交中文数据时遇到乱码问题:

  1. <%request.setCharacterEncoding("UTF-8");%>

  

效果:

3.示例:JavaBean实现访问计数

首先创建计数JavaBean:

  1. public class Counter {
  2. private int total=0;
  3.  
  4. public int getTotal() {
  5. return total++;
  6. }
  7. }

  

在index.jsp和edit.jsp文件中调用该JavaBean,注意将scope设置为application。

  1. <jsp:useBean id="counter" class="com.cathy.domain.Counter" scope="application"></jsp:useBean>
  2. <div>
  3. 访问计数:<jsp:getProperty name="counter" property="total"></jsp:getProperty>
  4. </div>

  

刷新这两个页面时,都能实现计数器累加。

JAVA入门[12]-JavaBean的更多相关文章

  1. JAVA入门--目录

    在此记录自己的JAVA入门笔记,备忘 JAVA入门[1]--安装JDK JAVA入门[2]-安装Maven JAVA入门[3]—Spring依赖注入 JAVA入门[4]-IntelliJ IDEA配置 ...

  2. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

  3. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  4. Java入门记(五):容器关系的梳理(下)——Map

    注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...

  5. Android初涉及之Android Studio&JAVA入门--二月不能不写东西

    是的,我还没有放弃写博客. 是的,我也没有放弃PHP的学习. 是的,我要开始学学最TM火的Android开发了. 你呢 1.Android Studio 一.概况 安装和配置什么的就不具体说了,网上一 ...

  6. Java入门教程总目录

    Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务

  7. Java入门的程序汇总

    Java入门的基础程序,虽然很简单,也要多练习,下面有重点的总结一下 1.HelloWorld这个不说了 2.常量与变量部分 基本数据类型使用 public class Javashujuleixin ...

  8. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  9. JAVA入门[9]-mybatis多表关联查询

    概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...

随机推荐

  1. 02.JSP内置对象

    一.内置对象:不再由用户进行实例化而可以直接使用的对象,一共九种,一定要清楚的记住每种内置对象的类型,以方便查询文档. 二.四种属性保存范围 1,  属性保存范围:指一个设置的对象,可以经过多少个其他 ...

  2. 借助 frp 随时随地访问自己的树莓派

    前言 看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3. 周一(11.13) 到的货.我目前只想实现一个简单的功能 -- 想从任意位置访问我的树莓派. ...

  3. GPIO复位功能说明

    根据STM32L0x3参考手册RM0367,每个General-Purpose IO口,有以下寄存器: 1.4个32位的控制寄存器,分别为GPIOx_MODER,GPIOx_OTYPER,GPIOx_ ...

  4. C#脏字过滤算法

    public class DirtyWordOper    {        private static Dictionary<string, object> hash = new Di ...

  5. ssh相关原理学习与常见错误总结

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  6. 冒泡排序-Python与PHP实现版

    Python实现 import random a=[random.randint(1,999) for x in range(0,33)] # 冒泡排序,python中数组是按引用传递的,会直接在原数 ...

  7. mysql实现高可用架构之MHA

    一.简介 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA 在监控到 mas ...

  8. web-故道白云&Clound的错误

    web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method="get"同时 ...

  9. 《java.util.concurrent 包源码阅读》19 PriorityBlockingQueue

    前面讲ScheduledThreadPoolExecutor曾经重点讲到了DelayedWorkQueue,这里说的PriorityBlockingQueue其实是DelayedWorkQueue的简 ...

  10. C# Code First 实例学习

    Code First是Entity Framework提供的一种新的编程模型.通过Code First我们可以在还没有建立数据库的情况下就开始编码,然后通过代码来生成数据库.下面具体讲解一下,在操作的 ...