简单笼统的说就是一个类,一个可复用的类。 javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。 JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。
封装的一个最主要的用途就在于:数据的安全性。如果像你所说的,所有的属性都用public来修饰,在操作性上是可行的。但是这样的数据时非常不安全的。比如:你在定义浏览器中的默认的每一页中显示的数据为10行数据,你用public去修饰了,我就可以通过new一个类的对象去修改你的这个默认值。但是你用private去修饰时(也就是对其进行了封装),你要setter和getter去改变,改变的只是你new出来的对象,原先的数据时没有变的,这样才是安全的。
1、
JavaBean是Java中开发的可以跨平台的重要组件,它是一种组件体系结构。JavaBean在服务器端的应用表现出了强大的生命力,在JSP程序中常用来封装业务逻辑、数据库操作等。
JavaBean实际上就是一个Java类,这个类可以重用。从JavaBean功能上可以分为:封装数据和封装业务。
JavaBean是一个公共类,并提供无参的公有的构造方法。属性私有。具有公有的访问属性的getter和setter方法。
1.1、一个封装数据的JavaBean一般情况下对应着数据库内一张表(或视图),JavaBean的属性与表(或视图)内字段的属性一一对应。相对于一个封装数据的JavaBean,一般都会有一个封装该类的业务逻辑和业务操作的JavaBean与之对应。
2、
当某个方法的参数很多时,一个一个得传参数是很麻烦。从面向对象的角度考虑,当业务恢复操作数据库表时,只要传递给该方法一个与表对应的实例对象就可以了。在该对象中包含着表中每个字段的值,而参数只有一个,传递的参数就是JavaBean对象(Java类对象)。
3、
JSP标准动作在浏览器请求页面时执行,JSP标准动作可使用现有的JavaBean组件和属性,以及将用户请求转到另一个网页。
JSP标准动作使用<jsp:>作为前缀,JSP标准动作中的属性区分大小写,属性中的值必须置于引号内。
使用JSP标准动作的好处:可以方便程序开发,体现在代码的重用。可以方便美工人员美化页面,在JSP中减少了大量的Java代码。简化了数据的获取和封装过程。
3.1、jsp:useBean动作用来装载一个将在JSP页面中使用的JavaBean。语法如下:
<jsp:useBean id=”name” class=”package.class” scope=”scope”/>
id用于创建JavaBean的引用名,创建对象的名称。Class用于指定JavaBean的类,创建对象的类型。scope用于指定JavaBean的范围,对象的范围,默认设置为page。
1.JavaBean是一个普通的对象类,该类必须有一个无参构造。
2.JavaBean的所有属性必须进行get/set封装,如果是bool属性,则需要用is进行封装。
3.javaBean在JSP中的使用如下:
[java] view plain copy
1. <span style="font-size:14px;">package Bean;
2.
3. public class loginBean {
4. private String userName;
5. private String passWord;
6.
7. public String getUserName() {
8. return userName;
9. }
10.
11. public void setUserName(String userName) {
12. this.userName = userName;
13. }
14.
15. public String getPassWord() {
16. return passWord;
17. }
18.
19. public void setPassWord(String passWord) {
20. this.passWord = passWord;
21. }
22.
23. }
24. </span>
[java] view plain copy
1. <span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2. <%@ taglib prefix="s" uri="/struts-tags" %>
3.
4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5. <html>
6. <head>
7. 'index.jsp' starting page</title>
8. </head>
9. <body>
10. "login" class="Bean.loginBean"/>
11. "login" property="userName" value="zhangsan"/>
12. "login" property="userName"/>
13.
14. </body>
15. </html> </span>
4.javaBean的作用域:
[java] view plain copy
1. <span style="font-size:14px;"><jsp:userBean id="login" class="Bean.loginBean" scope="page"/></span>
scope指定的作用域:
page:作用域为当前页面
request:浏览器当次请求服务器所涉及的服务器资源,包含forward(请求转发)和include(包含)
session:浏览器和服务器的本次会话期间,所有涉及到的资源。
application:服务器的启动和关闭的整段时间。
5.一般情况下的javaBean里面不写其他方法,特殊情况除外,SSH相关的暂且不提。
6.一般情况下,javaBean和数据库中的表对应,以便操作。