JSP--JavaBean
JSP 最强有力的一个方面就是能够使用 JavaBean 组件。 按照 Sun 公司的定义, JavaBean是一个可重复使用的软件组件。实际上 JavaBean 是一种 Java 类,通过封装属性和方法成为具有某种功能或者处理某些业务的对象,简称 Bean。
一个基本的 JSP 页面由静态的 HTML 标签和 Java 脚本组成,如果 Java脚本和 HTML 标签大量掺杂在一起,就显得页面混杂,不易维护。 JSP 页面应当将数据的处理过程指派给一个或者几个 Bean 来完成,而在 JSP 页面中调用 JavaBean。不提倡大量的数据处理都用 Java 脚本来完成。 JSP 页面中调用 JavaBean,可有效地分离静态工作部分和动态工作部分,实现业务逻辑和表现形式的分离。 JavaBean 负责业务逻辑的处理, JSP 负责页面的展示,如图 5–1 所示。

JavaBean 简介
JavaBean 的特点
可以实现代码的重复利用。
易编写、 易维护、易使用。
可以在任何支持 Java 的平台上工作,而不需要重新编译。
可以通过网络传输。
可以与其他 Java 类同时使用。
JavaBean 的应用范围
JavaBean 传统的应用在于可视化领域,如 AWT(抽象窗口工具集)和 Swing 下的应用。现在, JavaBean 更多的应用在于非可视化领域,它在服务器端应用方面表现出了越来越强的生命力。非可视化的 JavaBean 和可视化的 JavaBean 同样使用属性和事件。非可视化的JavaBean 在 JSP 程序中常用来封装业务逻辑、数据库操作等,可以很好地实现业务逻辑和前台页面的分离,使得系统具有更好的健壮性和灵活性。注意: JavaBean 和 EJB( Enterprise JavaBean)的概念是完全不同的。
编写 JavaBean 遵循的原则
编写 JavaBean 就是编写一个 Java 的类,所以只要学会写类就能编写一个 JavaBean,这个类创建的一个对象称之为 JavaBean。为了让使用 JavaBean 的应用程序构建工具(比如 JSP引擎)知道这个 Bean 的属性和方法, JavaBean 的类需要遵守以下规则:
1、必须具备一个零参数的构造方法,显式地定义这样一个构造方法或者省略所有的构造方法都能满足这项要求。
2、成员变量也称为属性, JavaBean 不应该有公开的成员变量,使用存取方法读取和修改属性, 而不允许对字段直接访问。 属性的名字建议以小写英文字母开头。
3、属性的值通过 getXxx()和 setXxx()方法来访问。如果类有 String 类型的属性 title,读取 title 的方法是返回 String 的 getTitle(), 修改 title 的方法是 setTitle(String title)。
4、布尔型的属性的读取方法可以使用 getXxx(),也可以使用 isXxx()。
5、JavaBean 需要声明在包里面, package 保留字给类起一个包名。
举个例子:
package com.wuyudong;
public class User {
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
诀窍: Eclipse 可以帮助我们生成 getter 和 setter 方法,右键 Source→ Generate Getters and Setters
<jsp:useBean>
JSP 页面中可以<jsp:useBean>动作元素在 JSP 页面中使用 JavaBean 对象,这样就可以将大部分业务处理逻辑封装在 JavaBean
<jsp:useBean>动作元素用来在 JSP 页面中获取或者创建一个 JavaBean 对象,并指定它的名字和作用范围。 JSP 容器确保 JavaBean 对象在指定的范围内可以使用。 <jsp:useBean>的语法格式如下:
<jsp:useBean id="beanName" class="package.BeanClassName" scope="page | request | session | application"/>
当服务器上某个含有<jsp:useBean>动作元素的 JSP 页面被加载执行时, JSP 引擎首先根据 ID 给出的 JavaBean 的名字( beanName),在 scope 范围对应的 JSP 内部对象上查找是否有这个名字的属性( Attribute)。如果在指定范围内找到了与 beanName 同名的属性, JSP 引擎返回属性对应的对象的引用。如果没有在指定的范围内找到与 beanName 同名的属性, JSP引擎根据 class 属性给出的包名和类名,创建一个该类的对象, 并将该对象作为属性名为beanName 的一个属性的值,绑定到 scope 范围对应的 JSP 内部对象上。由于 pageContext对象可以操作各个范围的属性,实际上 JavaBean 的查找和绑定都是通过 pageContext 对象来完成的。 如果没有指定 JavaBean 的范围,默认范围是 page。
实战一下:
JavaBean
package com.wuyudong;
public class Bean {
private String name;
public String getName() {
return name + " 的JavaBean程序!";
}
public void setName(String name) {
this.name = name;
}
}
index.jsp
<jsp:useBean id="bean" class="com.wuyudong.Bean"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
bean.setName("wuyudong");
%>
<h1 align="center"><%=bean.getName()%></h1>
</body>
</html>
<jsp:setProperty>
<jsp:setProperty>动作元素用来设置 JavaBean 的简单属性和索引属性。 <jsp:setProperty>使用 JavaBean 的 setter 方法设置一个或多个属性的值。
<jsp:setProperty>可以使用 value 给出属性的取值, 取值可以是一个字符串,也可以是一个 JSP 表达式( <%= %>)。
<jsp:setProperty name="beanName" property="propertyName" value="propertyValue"/>
实战:
创建javabean对象
package com.wuyudong;
public class Student {
private int id;
private int age;
private String classes;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
}
创建form表单放在index.jsp中
<form action="student.jsp" method="post">
<p>
学号: <input type="text" name="id">
</p>
<p>
年龄: <input type="text" name="age">
</p>
<p>
<input type="submit" value="提交">
<input type="reset" value="重 置">
</p>
</form>
<jsp:getProperty>
<jsp:getProperty>动作元素用来访问一个 JavaBean 的属性。访问的属性值将被转化成字符串,然后发送到输出流中。如果属性是一个对象,将调用该对象的 toString()方法。<jsp:getProperty>动作元素是通过调用 JavaBean 的 getter 方法获取属性的。
<jsp:getProperty name="beanName" property="propertyName"/>
注意: <jsp:getProperty>使用 name 属性给出 JavaBean 的名字,而<jsp:useBean>使用 id 属性给出 JavaBean 的名字,实际上它们是一致的,都是指绑定在特定范围对象的一个属性( Attribute)的名字。
实战一下:
创建JavaBean对象
package com.wuyudong;
public class Book {
private String bookName;
private String author;
private String category;
private double price;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
在index.jsp页面中对其操作
<body>
<!-- 实例化Book对象 -->
<jsp:useBean id="book" class="com.lyq.Book"></jsp:useBean>
<!-- 对Book对象赋值 -->
<jsp:setProperty name="book" property="bookName" value="《JAVA程序设计标准教程》"/>
<jsp:setProperty name="book" property="author" value="科技"/>
<jsp:setProperty name="book" property="category" value="Java图书"/>
<jsp:setProperty name="book" property="price" value="59.00"/>
<table align="center" border="1" cellpadding="1" width="350" height="100" bordercolor="green">
<tr>
<td align="right">图书名称:</td>
<td><jsp:getProperty name="book" property="bookName"/> </td>
</tr>
<tr>
<td align="right">作 者:</td>
<td><jsp:getProperty name="book" property="author"/> </td>
</tr>
<tr>
<td align="right">所属类别:</td>
<td><jsp:getProperty name="book" property="category"/> </td>
</tr>
<tr>
<td align="right">价 格:</td>
<td><jsp:getProperty name="book" property="price"/> </td>
</tr>
</table>
</body>
JSP--JavaBean的更多相关文章
- MVC开发模式之Servlet+jsp+javaBean
Servlet+jsp+JavaBean组合开发是一种MVC开发模式,控制器Controller采用Servlet.模型Model采用JavaBean.视图View采用JSP. 1.Web开发的请求- ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- Servlet+JSP+JavaBean开发模式(MVC)介绍
好伤心...写登陆注册之前看见一篇很好的博文,没有收藏,然后找不到了. 前几天在知乎上看见一个问题,什么时候感觉最无力. 前两天一直想回答:尝试过google到的所有solve case,结果bug依 ...
- JSP中使用的模式——JSP+JavaBean
模式二:JSP+Servlet+JavaBean 链接地址:http://wxmimperio.coding.io/?p=189 JSP中两种模式的总结 链接地址:http://wxmimperio. ...
- 咸鱼入门到放弃11--Servlet+JSP+JavaBean开发模式
本篇搬运了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servle ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- Struts与jsp+javabean+servlet区别
采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- jsp javabean开发模式
JSP&&JavaBean开发模式 在jsp+javabean架构中,jsp负责控制逻辑,表现逻辑,业务对象的调用 jsp+javaBean模式适合开发业务逻辑不复杂的web应用,这种 ...
- JSP+JavaBean+Servlet技术(MVC模型)
一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...
随机推荐
- php 将一个二维数组转换成有父子关系的数组
<?php /** * Tree 树型类(无限分类) * * @author Kvoid * @copyright http://kvoid.com * @version 1.0 * @acce ...
- 安装虚拟机VMware tools
不懂得安装虚拟机VMware tools的想必都是刚在虚拟机上玩系统初学者,无疑我们对虚拟机的了解并不深,这使得本来很容易安装的VMware tools在我们安装时变得复杂而又难以琢磨,到头一直的付出 ...
- K3 WISE开发手册
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功!
- 在server 2008/2003中 取消对网站的安全检查/去除添加信任网站
新安装好Windows Server 2003操作系统后,打开浏览器来查询网上信息时,发现IE总是“不厌其烦”地提示我们,是否需要将当前访问的网站添加到自己信任的站点中去:要是不信任的话,就无 ...
- mysql安装出现error Nr.1045 (转)
http://www.cnblogs.com/Ivan-j2ee/archive/2012/09/22/2698278.html 我们在windows下安装mysql时会出现Access denied ...
- iOS开发工具——网络封包分析工具Charles
简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使 ...
- dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes
Problem B. Infinite House of Pancakes Problem's Link: https://code.google.com/codejam/contest/6224 ...
- win8.1注册表-修改资源管理器的默认路径regedit
默认情况下,激活Win8的资源管理器都是直接打开库,对于习惯了以前版本的Windows用户来说,还要重新选择“计算机”才能进入相应的磁盘寻找文件,操作起来很是不便.为此,可以进行设置,让资源管理器默认 ...
- 给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
步骤: 1.在文本框中输入内容时,触发keyup事件: 2.在keyup事件的处理方法中,通过Ajax调用控制器的方法: 3.在控制器方法中,搜索满足条件的数据,这里分页获取数据,且只取第一页的数据, ...
- MVC bundle(包扎)CSS或是JS文件
以前写asp.net网页时,会在<head>节点中引用很多样式文件或是javascript文件,如下图左大括号的引用语句. 现在在MVC应用程序中,可以使用使用Bundle来捆一起, 在S ...