JAVA入门[12]-JavaBean

简介:

一.什么是JavaBean

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

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

二.定义JavaBean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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,语法格式如下:

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

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

2.设置和获取JavaBean属性

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

1
2
3
4
5
6
7
8
<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属性

1
2
3
4
5
6
7
8
9
10
<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

1
2
3
4
5
<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="*"

1
2
3
4
5
6
7
8
9
<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>

  

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

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

  

效果:

Image(42)

Image(43)

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

首先创建计数JavaBean:

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

  

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

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

  

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



    本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/p/6518322.html,如需转载请自行联系原作者



相关文章
|
9月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
734 0
|
11月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
1248 3
|
10月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
704 0
|
Java API 微服务
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
640 5
|
10月前
|
前端开发 Java 数据库连接
帮助新手快速上手的 JAVA 学习路线最详细版涵盖从入门到进阶的 JAVA 学习路线
本Java学习路线涵盖从基础语法、面向对象、异常处理到高级框架、微服务、JVM调优等内容,适合新手入门到进阶,助力掌握企业级开发技能,快速成为合格Java开发者。
1378 3
|
11月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
1128 2
|
11月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。
|
11月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
11月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
647 1
|
10月前
|
Java API 数据库
2025 年最新 Java 实操学习路线,从入门到高级应用详细指南
2025年Java最新实操学习路线,涵盖从环境搭建到微服务、容器化部署的全流程实战内容,助你掌握Java 21核心特性、Spring Boot 3.2开发、云原生与微服务架构,提升企业级项目开发能力,适合从入门到高级应用的学习需求。
2906 0