简单笼统的说就是一个类,一个可复用的类。 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>
  1.  




[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和数据库中的表对应,以便操作。