JAVA入门[12]-JavaBean
一.什么是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的更多相关文章
- JAVA入门--目录
在此记录自己的JAVA入门笔记,备忘 JAVA入门[1]--安装JDK JAVA入门[2]-安装Maven JAVA入门[3]—Spring依赖注入 JAVA入门[4]-IntelliJ IDEA配置 ...
- 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- Android初涉及之Android Studio&JAVA入门--二月不能不写东西
是的,我还没有放弃写博客. 是的,我也没有放弃PHP的学习. 是的,我要开始学学最TM火的Android开发了. 你呢 1.Android Studio 一.概况 安装和配置什么的就不具体说了,网上一 ...
- Java入门教程总目录
Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务
- Java入门的程序汇总
Java入门的基础程序,虽然很简单,也要多练习,下面有重点的总结一下 1.HelloWorld这个不说了 2.常量与变量部分 基本数据类型使用 public class Javashujuleixin ...
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- JAVA入门[9]-mybatis多表关联查询
概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...
随机推荐
- 如何兼容所有Android版本选择照片或拍照然后裁剪图片--基于FileProvider和动态权限的实现
我们知道, Android操作系统一直在进化. 虽然说系统是越来越安全, 可靠, 但是对于开发者而言, 开发难度是越来越大的, 需要注意的兼容性问题, 也越来越多. 就比如在Android平台上拍照或 ...
- Debian6单用户模式
开始的时候按"e"进入Grub的编辑界面,这个时候要找:linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=.......... ro qui ...
- 在ASP.NET开发中一些单词的标准缩写
有些词可能共用一些缩写.带星号的缩写或词来源于PeopleSoft标准. The following standard word abbreviations should be used in nam ...
- 一篇文章让你明白python的装饰器
在看闭包问题之前先来看看关于python中作用域的问题 变量作用域 对于上述代码中出现错误,肯定没什么疑问了,毕竟b并没有定义和赋值,当我们把代码更改如下后: 再看一个例子: 首先这个错误已经非常明显 ...
- 《Linux命令行与shell脚本编程大全》第十章 使用编辑器
主要介绍vim, nano, emacs,KWrite,Kate,GNOME 10.1 vim Unix系统最初的编辑器 10.1.1检查vim软件包 先搞明白你所用的Linux系统是哪种vim软件包 ...
- .net core 支付宝,微信支付 二
源码: https://github.com/aspros-luo/Qwerty.Payment/tree/develop 今天开始微信支付 微信支付坑比较多,支付流程也不太一样,微信支付需要先生成预 ...
- 《Metasploit魔鬼训练营》第三章
p85 使用nmap探测目标主机的操作系统版本那里有问题,我探测不了NAT服务器的! msf > nmap -sT 10.10.10.254 [*] exec: nmap -sT 10.10.1 ...
- Python 学习之路3
接下来把剩下的实验一起写上去 实验2 写一个学生类,属性有学号,姓名,成绩(三门),方法有输出,求平均成绩. 设计思路: 1. 先写一个学生类,并向里面写一个求平均值和输出信息的方法. ...
- powerdesigner 不能自动生成注释的解决方法
解决power designer 不能自动生成注释的解决办法只需要3步: 一.快捷键 Alt+Shift+X 打开脚本编辑器: 二.将下面天蓝色的字体脚本添加到脚本编辑器里面: Option Expl ...
- linux环境变量的配置
1.全局环境变量 vi /etc/profile JAVA_HOME=/opt/modules/jdk1.8.0_11/ export PATH=$PATH:$JAVA_HOME/bin:$JAV ...