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>

  

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

时间: 2024-10-25 08:34:53

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

Jersey 入门与Javabean

Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service,它包含三个部分: 核心服务器(Core Server) 通过提供JSR 311中标准化的注释和API标准化,可以用直观的方式开发RESTful Web服务. 核心客户端(Core Client) Jersey客户端API能够帮助开发者与RESTful服务轻松通信: 集成(Integration) Jersey还提供可以轻松继承Spring.Guice.Apache Abdera的库 设置Jers

Java入门——面向对象基础(三)

Java入门——抽象类与接口的应用 本Blog内容 为抽象类与接口实例化 抽象类的实际应用——模板设计 接口的实际应用——制定标准 设计模式——工厂设计 设计模式——代理设计 为抽象类与接口实例化 利用多态性 1 package Sep16; 2 3 public class AbstractCaseDemo1 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // TODO Auto-gene

Java入门——多线程(二)

Java入门——多线程(二) 线程的状态 要想实现多线程,必须在主线程中创建新的线程对象.任何线程一般具有5种状态. 创建状态:用构造方法创建一个线程对象之后,新的线程就处于该状态.已经有了相应的内存空间和其他资源和其他资源. 就绪状态:线程进入线程队列排队,等待CPU服务. 运行状态:CPU处理,自动调用run()方法. 阻塞状态:就是在执行过程中暂时挂起.原因有:人为挂起,CPU的决定,sleep(),suspend(),wait()等方法.只有当引起阻塞的原因被消除后,线程才能转入就绪状态

java web 程序---javabean实例--登陆界面并显示用户名和密码

重点:注意大小写,不注意细节,这点小事,还需要请教 发现一个问题,也是老师当时写的时候,发现代码没错,但是就是运行问题. 大家看,那个java类,我们要求是所有属性均为私有变量,但是方法为公有的,如果方法为不公有的,那么运行就一定有问题,一定声明为public.不写修饰符,就是不对. 这样程序可以运行了,细节.这就是我觉得老师很棒的原因. 一个表单 deng.jsp ? 1 2 3 4 5 6 7 8 <body>   <form action="c.jsp">

Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  19:08 2 熟悉Eclipse开发工具  12:42 3 Java语言基础  17:39 4 流程控制  14:53 5 数组  14:44 6 字符串  34:32 7 类和对象  29:30 8 猜拳游戏  33:39 9 模拟银行柜员机程序  36:35 10 退休金结算程序  本课程由

Java入门——面向对象基础(一)

Java入门——面向对象基础(一) 本博客目的 练习题(重要) 面向对象的概念(了解) 面向对象的三大特性(重要) 2016-09-10——13:13:39 ll练习题 用方法调用的形式进行数组排序 1 package Sep10; 2 //调用方法完成两个整形数组的排序并打印 3 public class ArrayRefDemo03 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // T

Zookeeper Api(java)入门与应用(转)

如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化.通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使用示例. 常用接口列表 客户端要连接 Zookeeper 服务器

Java入门——异常的捕获与处理

Java入门——异常的捕获与处理 在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误.充分利用Java的异常处理机制,以增进程序的稳定性和效率. Java的异常处理机制 一旦产生异常,则首先会产生一个异常类的实例化对象. 在try语句中对此异常对象进行捕获. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码. finaly是异常的统一出口,一定会执行. 所有的子类实例全部可由父类接收,利用向上转型的概念

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can&#39;t find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n