一.什么是JavaBean

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

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

二.定义JavaBean

package com.cathy.domain;

public class Category implements java.io.Serializable{
public Category(){}
private int cateId;
private String cateName; public int getCateId() {
return cateId;
} public void setCateId(int cateId) {
this.cateId = cateId;
} public String getCateName() {
return cateName;
} public void setCateName(String cateName) {
this.cateName = cateName;
}
}

  

三、访问JavaBean

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

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

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

2.设置和获取JavaBean属性

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

<jsp:useBean id="id" class="bean 类" scope="bean 作用域"> 

<jsp:setProperty name="bean 的 id" property="属性名"
value="value"/>
<jsp:getProperty name="bean 的 id" property="属性名"/>
........... </jsp:useBean>

  

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

四、示例

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

<jsp:useBean id="category" class="com.cathy.domain.Category">
<jsp:setProperty name="category" property="cateId" value="2"></jsp:setProperty>
<jsp:setProperty name="category" property="cateName" value="女装"></jsp:setProperty>
</jsp:useBean>
<div>
id:<jsp:getProperty name="category" property="cateId"></jsp:getProperty>
</div>
<div>
name:<jsp:getProperty name="category" property="cateName"></jsp:getProperty>
</div>

  

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

edit.jsp

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

  

detail.jsp

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

<jsp:useBean id="category" class="com.cathy.domain.Category">
<jsp:setProperty name="category" property="*"></jsp:setProperty>
</jsp:useBean>
<table>
<tr>
<td>id:</td><td><jsp:getProperty name="category" property="cateId"></jsp:getProperty></td>
</tr>
<tr><td>名称:</td><td><jsp:getProperty name="category" property="cateName"></jsp:getProperty></td></tr>
</table>

  

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

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

  

效果:

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

首先创建计数JavaBean:

public class Counter {
private int total=0; public int getTotal() {
return total++;
}
}

  

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

<jsp:useBean id="counter" class="com.cathy.domain.Counter" scope="application"></jsp:useBean>
<div>
访问计数:<jsp:getProperty name="counter" property="total"></jsp:getProperty>
</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. 10.javaweb核心标签库详解

    一.JSTL简介及在项目中安装配置 1,  简介 使用JSTL标签的目的就是不希望jsp中出现java逻辑代码 分类 2,  JSTL的安装配置 首先将jar包中的各个标签库配置文件拷贝到项目WEB- ...

  2. 1045-access denied for user 'root'@

    在用sqlyog图形界面远程登录阿里云mysql数据库的时候出现了如下的问题, 1045-access denied for user 'root'@ 刚开始以为阿里云esc的安全组并没有配置3306 ...

  3. C#调用DLL文件时参数对应表

    Wtypes.h中的非托管类型  非托管 C语言类型    托管类名               说明HANDLE                  void*               Syste ...

  4. Kaggle实战之一回归问题

    0. 前言 1.任务描述 2.数据概览 3. 数据准备 4. 模型训练 5. kaggle实战 0. 前言 "尽管新技术新算法层出不穷,但是掌握好基础算法就能解决手头 90% 的机器学习问题 ...

  5. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师

    为什么要写这个系列博客呢? 说来讽刺,91年生人的我,同龄人大多有一份事业,或者有一个家庭了.而我,念了次985大学,年少轻狂,在大学期间迷信创业,觉得大学里的许多课程如同吃翔一样学了几乎一辈子都用不 ...

  6. 乐呵乐呵得了 golang入坑系列

    开场就有料,今天返回去看了看以前的文章,轻松指数有点下降趋势.一琢磨,这不是我的风格呀.一反思,合着是这段时间,脑子里杂七杂八的杂事有点多,事情一多,就忘了快乐.古话说得好:愁也一天,乐也一天,只要还 ...

  7. python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式

    一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...

  8. LVM挂载失败mount: you must specify the filesystem type

    因意外原因导致机器重启,机器起来后发现磁盘挂载没有了,挂载,结果报错 [root@all /]# mount /dev/hdc2 /mnt/cdrom mount: you must specify ...

  9. Linux多线程编程——线程的创建与退出

    POSIX线程标准:该标准定义了创建和操纵线程的一整套API.在类Unix操作系统(Unix.Linux.Mac OS X等)中,都使用Pthreads作为操作系统的线程.Windows操作系统也有其 ...

  10. Mysql的管理及使用

    第1章 Mysql的管理 1.1 连接管理mysql mysql[options] #Linux或UNIX shell提示符(终端窗口) mysql --help #查看帮助信息 mysql --ve ...