- JSP 基础教程
- JSP - 首页
- JSP - 概述
- JSP - 环境设置
- JSP - 架构
- JSP - 生命周期
- JSP - 语法
- JSP - 指令
- JSP - 动作
- JSP - 隐式对象
- JSP - 客户端请求
- JSP - 服务器响应
- JSP - HTTP 状态码
- JSP - 表单处理
- JSP - 编写过滤器
- JSP - Cookie 处理
- JSP - 会话跟踪
- JSP - 文件上传
- JSP - 日期处理
- JSP - 页面重定向
- JSP - 点击计数器
- JSP - 自动刷新
- JSP - 发送邮件
- 高级 JSP 教程
- JSP - 标准标签库
- JSP - 数据库访问
- JSP - XML 数据
- JSP - JavaBean
- JSP - 自定义标签
- JSP - 表达式语言
- JSP - 异常处理
- JSP - 调试
- JSP - 安全性
- JSP - 国际化
- JSP 有用资源
- JSP - 问答
- JSP - 快速指南
- JSP - 有用资源
- JSP - 讨论
JSP - JavaBean
JavaBean 是一个用 Java 编写并根据 JavaBeans API 规范编码的特殊构造的 Java 类。
以下是将 JavaBean 与其他 Java 类区分开的独特特征:
它提供了一个默认的无参数构造函数。
它应该是可序列化的,并且可以实现 **Serializable** 接口。
它可能具有一些可以读取或写入的属性。
它可能具有一些用于属性的“**getter**”和“**setter**”方法。
JavaBean 属性
JavaBean 属性是可以由对象用户访问的命名属性。该属性可以是任何 Java 数据类型,包括您定义的类。
JavaBean 属性可以是 **只读、可写、只读** 或 **只写**。JavaBean 属性通过 JavaBean 实现类中的两种方法访问:
序号 | 方法和描述 |
---|---|
1 | get**PropertyName**() 例如,如果属性名称为 *firstName*,则您的方法名称将为 **getFirstName()** 以读取该属性。此方法称为访问器。 |
2 | set**PropertyName**() 例如,如果属性名称为 *firstName*,则您的方法名称将为 **setFirstName()** 以写入该属性。此方法称为修改器。 |
只读属性将仅具有 **getPropertyName()** 方法,而只写属性将仅具有 **setPropertyName()** 方法。
JavaBean 示例
考虑一个具有少量属性的学生类:
package com.tutorialspoint; public class StudentsBean implements java.io.Serializable { private String firstName = null; private String lastName = null; private int age = 0; public StudentsBean() { } public String getFirstName(){ return firstName; } public String getLastName(){ return lastName; } public int getAge(){ return age; } public void setFirstName(String firstName){ this.firstName = firstName; } public void setLastName(String lastName){ this.lastName = lastName; } public void setAge(Integer age){ this.age = age; } }
访问 JavaBean
**useBean** 动作声明一个 JavaBean 以在 JSP 中使用。声明后,该 Bean 成为一个脚本变量,可以被 JSP 中使用的脚本元素和其他自定义标签访问。**useBean** 标签的完整语法如下:
<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
此处,**scope** 属性的值可以是 **page、request、session** 或 **application**,具体取决于您的需求。**id** 属性的值可以是任何值,只要它在同一 JSP 中的其他 **useBean 声明**中是唯一的即可。
以下示例演示如何使用 useBean 动作:
<html> <head> <title>useBean Example</title> </head> <body> <jsp:useBean id = "date" class = "java.util.Date" /> <p>The date/time is <%= date %> </body> </html>
您将收到以下结果:
The date/time is Thu Sep 30 11:18:11 GST 2010
访问 JavaBean 属性
除了 **<jsp:useBean...>** 动作外,您还可以使用 **<jsp:getProperty/>** 动作访问 get 方法,并使用 **<jsp:setProperty/>** 动作访问 set 方法。以下是完整语法:
<jsp:useBean id = "id" class = "bean's class" scope = "bean's scope"> <jsp:setProperty name = "bean's id" property = "property name" value = "value"/> <jsp:getProperty name = "bean's id" property = "property name"/> ........... </jsp:useBean>
**name** 属性引用之前由 useBean 动作引入 JSP 的 JavaBean 的 id。**property** 属性是应调用的 **get** 或 **set** 方法的名称。
以下示例演示如何使用上述语法访问数据:
<html> <head> <title>get and set properties Example</title> </head> <body> <jsp:useBean id = "students" class = "com.tutorialspoint.StudentsBean"> <jsp:setProperty name = "students" property = "firstName" value = "Zara"/> <jsp:setProperty name = "students" property = "lastName" value = "Ali"/> <jsp:setProperty name = "students" property = "age" value = "10"/> </jsp:useBean> <p>Student First Name: <jsp:getProperty name = "students" property = "firstName"/> </p> <p>Student Last Name: <jsp:getProperty name = "students" property = "lastName"/> </p> <p>Student Age: <jsp:getProperty name = "students" property = "age"/> </p> </body> </html>
让我们将 **StudentsBean.class** 可用于 CLASSPATH。访问上述 JSP。将显示以下结果:
Student First Name: Zara Student Last Name: Ali Student Age: 10