JavaBean简介

JavaBean简介

一、什么是JavaBean

JavaBean是用Java语言描述的软件组件模型,类似于Microsoft中的COM组件的概念。

对于编程人员来说,使用JavaBean可以实现代码的重复利用,因此极大简化了程序的设计过程。在JSP中JavaBean分为两种:可视化的JavaBean和非可视化的JavaBean。

    随着JSP的产生和发展,JavaBean也从传统的可视化领域中的应用更多地应用到非可视化领域,且在服务器端的应用中表现出了非常明显的优势。非可视化JavaBean指的是没有GUI界面的JavaBean,在实际开发中常用来封装业务逻辑和进行数据库的相关操作,如连接数据库、数据处理等。使用非可视化的JavaBean更好地实现了业务逻辑表现层之间的分离,降低了它们之间的耦合度。

    在JSP中只使用非可视化的JavaBean。

 

二、定义JavaBean

JavaBean是一种特殊的Java类:

1、JavaBean是一个public类,即JavaBean的类访问权限必须是public

2、JavaBean应该包含一个无参的构造方法

3、JavaBean中属性的获取和设置需要使用标准格式定义的getXxx()方法和setXxx()方法。对于boolean类型成员变量,可以使用isXxx()方法。

  1. package javabean;  
  2. public class MyJavaBean {  
  3.      private String name;  
  4.      private String school;  
  5.      public MyJavaBean(){}      //不写也行,编译器会自动给你创建一个  
  6.      public String getName() {  
  7.          return name;  
  8.      }  
  9.      public void setName(Stringname) {  
  10.          this.name = name;  
  11.      }  
  12.      public String getSchool() {  
  13.          return school;  
  14.      }  
  15.      public void setSchool(Stringschool) {  
  16.          this.school = school;  
  17.      }  
  18. }  

 

三、设置JavaBean的属性

在JSP中可以调用JavaBean,JSP中提供了3个标准的动作指令:<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>。

<jsp:setProperty>是用来设置和修改Bean中的属性值。

1<jsp:setPropertyname="myBean"property="*" />

    property="*" 表示从request对象中将所有与JavaBean属性名字相同的请求参数传递给相应的setter方法。myBean是JavaBean实例名。

2<jsp:setPropertyname="myBean"property="id" />

    该形式表示将request对象中的一个参数值来设置JavaBean实例中的一个属性值。id为Bean中的属性名,该属性名应该与request请求参数的名字保持相同。

3<jsp:setPropertyname="myBean"property="id" param="str"/>

    该形式表示将request对象中的参数str传入到JavaBean实例myBean的属性id中。其中param指定使用哪个请求参数来作为Bean属性的值。要说明的是,此时param指定的Bean属性和request参数的名字可以不相同。

4<jsp:setPropertyname="myBean"property="id" value="Baolibin"/>

    该形式表示想JavaBean实例myBean的属性id中传入指定的值。其中value用来指定传入Bean中属性的值。

注意:param属性表示页面请求中的参数的名称,value属性则表示赋给Bean属性property的具体值。在<jsp:setProperty>中不能同时使用param属性和value属性

四、JavaBean存在范围

JSP中有四种属性范围,分别是page、request、session、application。

在JavaBean中也可以设置其存在范围,它的意义与属性的存储范围相同。

五、JavaBean例子

例一:实现一个简单的计数功能,每次请求都是计数器增1。

Counter.java

  1. package javabean;  
  2. public class Counter {  
  3.      intcount=0;   //记录请求次数  
  4.      publicCounter(){}   //无参构造方法  
  5.      publicint getCount() {  
  6.          count++;  
  7.          returncount;  
  8.      }  
  9.      publicvoid setCount(int count) {  
  10.          this.count= count;  
  11.      }  
  12. }  

counter.jsp

  1. <%@ page language="java"contentType="text/html; charset=gb2312" %>  
  2. <html>  
  3. <head>  
  4.     <title>counter 技术JSP页面</title>  
  5. </head>  
  6. <body>  
  7. <jsp:useBean id="countbean"scope="application" class="javabean.Counter" />  
  8. <jsp:getProperty name="countbean"property="count" />  
  9. </body>  
  10. </html>  



例二:使用JavaBean来实现用户登陆功能。

User.java

  1. package javabean;  
  2. public class User{  
  3.     private String username;  
  4.     private String password;  
  5.     public String getUsername() {  
  6.         return username;  
  7.     }  
  8.     public void setUsername(String username) {  
  9.         this.username = username;  
  10.     }  
  11.     public String getPassword() {  
  12.         return password;  
  13.     }  
  14.     public void setPassword(String password) {  
  15.         this.password = password;  
  16.     }  
  17. }  

 

login.jsp

  1. <%@ page language="java"contentType="text/html; charset=gb2312" %>  
  2. <html>  
  3. <head>  
  4.     <title>counter 技术JSP页面</title>  
  5. </head>  
  6. <body>  
  7.     <form action="javabeandemo.jsp" method="post">  
  8.         用户名:  
  9.         <input type="text" name="username">  
  10.         <br><br>  
  11.         密  码:  
  12.         <input type="password" name="password">  
  13.         <br><br>  
  14.         <input type="submit" value="提交">  
  15.     </form>  
  16. </body>  
  17. </html>  


javabeandemo.jsp

  1. <%@ page language="java"contentType="text/html; charset=gb2312" %>  
  2. <html>  
  3. <head>  
  4.     <title>counter 技术JSP页面</title>  
  5. </head>  
  6. <body>  
  7.     <%  
  8.         request.setCharacterEncoding("gb2312");  
  9.      %>  
  10.     <jsp:useBean id="userbean" scope="page"class="javabean.User"/>  
  11.     <jsp:setProperty name="userbean" property="username"param="username" />  
  12.     <jsp:setProperty name="userbean" property="password"param="password" />  
  13.     用户名:  
  14.     <jsp:getProperty name="userbean" property="username"/>  
  15.     <br><br>  
  16.     密  码:  
  17.     <jsp:getProperty name="userbean" property="password"/>  
  18.     <br><br>  
  19.     <!--  
  20.         也可以这样输出  
  21.         <%  
  22.             out.println("用户名为:"+userbean.getUsername()+"<br>");  
  23.         %>  
  24.      -->  
  25. </body>  
  26. </html>  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。