javaBean介绍
javaBean 概述
起初,JavaBean的目的是为了将可以重复使用的代码进行打包,在传统的应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮、文本框等,这样的JavaBean称之可视化的JavaBean。随着技术的不断发展与项目的需求,目前JavaBean主要用于实现一此业务逻辑或封装一些业务对象,由于这样的JavaBean并没有可视化的界面,所以又称之为非可视化的JavaBean。
可视化的JavaBean一般应用于Swing的程序中,在Java Web开发中并不会采用,而是使用非可视化的JavaBean,实现一此业务逻辑或封装一些业务对象,下面就通过实例来了解一下非可视化的JavaBean。
JavaBean种类
1.**可视化的JavaBean:**主要实现一些可视化的界面
2.**非可视化的JavaBean:**实现一些业务逻辑或一些业务对象。
JavaBean的应用
1.获取JavaBean的属性信息
在javaBean对象中,为了防止外部直接对JavaBean属性的调用,通常将JavaBean中的属性设置为私有的(private),但需要为其提供公共的(public)访问方法,也就是getXXX()方法。
说明:使用 jsp:useBean标签可以实例化JavaBean对象,jsp:getProperty标签可以获取JavaBean中的属性信息,这两个标签可以直接操作我们所编写的类,但是它在JSP 页面中并不可以操作所有的Java类。
jsp:useBean标签与jsp:getProperty标签之所以可以操作java类,是因为我们所编写的Java类遵循了JavaBean规范。jsp:useBean标签获取类的事例,其内部是通过实例化类的默认构造方法进行获取,所以,JavaBean需要一个默认的无参的构造方法;jsp:getProperty标签获取JavaBean中的属性,其内部是通过调用指定类型的getXXX方法进行获取,所以,JavaBean规范要求为属性提供公共的(public)类型的访问器。因此,在编写就JavaBean是要遵循制定的JavaBean规范。
2.对JavaBean属性赋值
编写JavaBean对象要遵循JavaBean规范,在JavaBean'规范中的访问器的setXXX()方法,用于对JavaBean中的属性赋值,如果对JavaBean对象的属性提供了setXXX()方法,在JSP页面中就可以通过,<jsp:setProperty>对其进行赋值
3.在JSP页面中应用JavaBean
将JavaBean对象应用到JSP页面中,JavaBean的生命周期可以自行进行设置,它存在于4种范围之内,分别为:page、request、session、application,默认的情况下,JavaBean作用于page范围之内。
4.实例
实现档案管理系统,在其中录入用户信息功能,主要通过在JSP 页面中应用JavaBean进行实现。
(1) 创建名称为Person的类,实现对用户信息的封装。
1 package dao;
2
3 public class Person {
4 // 姓名
5 private String name;
6 // 年龄
7 private int age;
8 // 性别
9 private String sex;
10 // 住址
11 private String add;
12 public String getName() {
13 return name;
14 }
15 public void setName(String name) {
16 this.name = name;
17 }
18 public int getAge() {
19 return age;
20 }
21 public void setAge(int age) {
22 this.age = age;
23 }
24 public String getSex() {
25 return sex;
26 }
27 public void setSex(String sex) {
28 this.sex = sex;
29 }
30 public String getAdd() {
31 return add;
32 }
33 public void setAdd(String add) {
34 this.add = add;
35 }
36 }
(2)创建程序的主页面index.jsp,在该页面中放置录入用户信息所需要的表单
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <form action="reg.jsp" method="post"> 11 <table align="center" width="400" height="200" border="1"> 12 <tr> 13 <td align="center" colspan="2" height="40"> 14 <b>添加用户信息</b> 15 </td> 16 </tr> 17 <tr> 18 <td align="right">姓 名:</td> 19 <td> 20 <input type="text" name="name"> 21 </td> 22 </tr> 23 <tr> 24 <td align="right">年 龄:</td> 25 <td> 26 <input type="text" name="age"> 27 </td> 28 </tr> 29 <tr> 30 <td align="right">性 别:</td> 31 <td> 32 <input type="text" name="sex"> 33 </td> 34 </tr> 35 <tr> 36 <td align="right">住 址:</td> 37 <td> 38 <input type="text" name="add"> 39 </td> 40 </tr> 41 <tr> 42 <td align="center" colspan="2"> 43 <input type="submit" value="添 加"> 44 </td> 45 </tr> 46 </table> 47 </form> 48 </body> 49 </html>
(3)创建名称为reg.jsp的JSP页面,用于对index.jsp页面中的表单的提交请求进行处理。
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <%request.setCharacterEncoding("UTF-8");%> 11 <jsp:useBean id="person" class="dao.Person" scope="page"> 12 <jsp:setProperty name="person" property="*"/> 13 </jsp:useBean> 14 <table align="center" width="400"> 15 <tr> 16 <td align="right">姓 名:</td> 17 <td> 18 <jsp:getProperty property="name" name="person"/> 19 </td> 20 </tr> 21 <tr> 22 <td align="right">年 龄:</td> 23 <td> 24 <jsp:getProperty property="age" name="person"/> 25 </td> 26 </tr> 27 <tr> 28 <td align="right">性 别:</td> 29 <td> 30 <jsp:getProperty property="sex" name="person"/> 31 </td> 32 </tr> 33 <tr> 34 <td align="right">住 址:</td> 35 <td> 36 <jsp:getProperty property="add" name="person"/> 37 </td> 38 </tr> 39 </table> 40 </body> 41 </html>
运行结果: