• 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>  

  • 相关阅读:
    Dynamics 365/CRM 实体设计技巧
    Dynamics 365/CRM 保存之后触发onchange
    编写C#程序,计算去除最大值和最小值之后的平均值
    Dynamics 365 WebResourceUtility 工具更新
    No sandboxworker process or sandbox hosts are currently avaliable
    C#
    Dynamics CRM 365 and Azure Service Bus – Queue
    双for循环
    java switch 的练习
    java__if_else 的练习
  • 原文地址:https://www.cnblogs.com/baolibin528/p/4119687.html
Copyright © 2020-2023  润新知