• JavaBean与Jsp


     这一节我们总结一下JavaBean和Jsp的关系。

    1. JavaBean

            javaBean是一个遵循特定写法的Java类,它通常具有如下特点:
            1)这个java类必须具有一个无参构造函数;
            2)属性必须私有化;
            3)私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范。
            javaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的javaBean组件,其它程序可以通过反射技术实例化javaBean对象,并且通过反射那些遵守命名规则的方法,从而获知javaBean的属性,进而调用其属性保存数据。

    2. 在Jsp中使用JavaBean的代码

            JSP技术提供了三个关于javaBean组件的动作元素,即JSP标签:
            <jsp:useBean>标签:用于在JSP页面中查找实例化一个javaBean组件。
            <jsp:setProperty>标签:用于在JSP页面中设置一个javaBean组件的属性。
            <jsp:getProperty>标签:用于在JSP页面中获取一个javaBean组件的属性。

            下面我么来总结一下这三个标签的使用:

    2.1 <jsp:useBean>标签

            <jsp:useBean>标签用于在指定的域范围内查找指定名称的javaBean对象。如果存在则直接返回该javaBean对象的引用,如果不存在则实例化一个新的javaBean对象并将它以指定的名称存到指定的域范围中。
           常用语法:    

    <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/></span>  

           id属性用于指定javaBean实例对象的引用名称和其存储在域范围中的名称。class属性用于指定javaBean的完整类名(即必须带有包名)。scope属性用于指定javaBean实例对象所存储的域范围,其取值只能是page equestsession和application等四个值中的一个,默认为page。

    2.2 <jsp:setProperty>

            <jsp:setProperty>标签用于设置和访问javaBean对象的属性。
            常用语法:

    <jsp:setProperty name="beanName"  
                 property="propertyName" value="{String|<%=expression%>}" |  
                 property="propertyName" [param="parameterName"] |  
                 property="*"  
    />  

        name属性用于指定javaBean对象的名称。property属性用于指定javaBean实例对象的属性名。value属性用于指定javaBean对象的某个属性值,value的值可以是字符串,也可以是表达式:为字符串时,该值会自动转化为javaBean属性相应的类型,setProperty可以自动把字符串转换成八种基本数据类型,但对于复杂的类型无法转换,如Date;为表达式,那么该表达式的计算结果必须与所要设置的javaBean属性的类型一致。
            param属性用于将javaBean实例对象的某个属性值设置为一个请求参数(在地址中指定),该属性值同样会自动转换成要设置的javaBean属性的类型。*用于获取所有请求参数来设置属性值。

    3. <jsp:getProperty>

            <jsp:getProperty>标签用于读取javaBean对象的属性,也就调用javaBean对象的getter方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中。
    常用语法:

    <jsp:getProperty name="beanInstanceName" property="propertyName"/>

     name属性用于指定javaBean实例对象的名称,其值应与<jsp:useBean标签的id属性值相同。property属性用于指定javaBean实例对象的属性名。如果javaBean实例对象的某个属性值为null,那么获得的属性值结果将是一个内容为"null"的字符串

           下面看一个简单的例子来直观的认识一下这三个标签的使用:

    <%@page import="javaBean.Person"%>  
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
      
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    <html>  
      <head>      
        <title>jsp标签的使用</title>  
      </head>  
      <body>         
        <!--class属性必须指定bean的完整类名   
        标签内容只在实例化bean时执行,即在域中找到了bean时(不用实例化)不会执行  -->  
        <%  
            //pageContext.setAttribute("person", new Person());  
         %>    
         <jsp:useBean id="person" class="javaBean.Person" scope="page">  
            标签内容  
         </jsp:useBean>              
           
         <jsp:setProperty property="name" value="eson_15" name="person"/>  
           
         <!-- jsp:setProperty标签在工作时,它会自动把字符串转换成八种基本数据类型,如int类型  
                  但是对于复杂类型无法自动进行转换,如Date类型  -->   
         <jsp:setProperty property="age" value="12" name="person"/>  
         <!-- 这样也可以:<jsp:setProperty property="age" value="<%=12%>" name="person"/>  -->  
            
         <jsp:setProperty property="birthday" value="<%= new Date() %>" name="person"/>  
         <!-- value如果用"1990-9-19"则不行,jsp:setProperty无法自动对时间进行转换 -->      
           
         <jsp:setProperty property="name" param="name" name="person"/>  
         <!-- 获取请求页面的请求参数name:http://localhost:8080/day09/1.jsp?name=<span style="font-family:Microsoft YaHei;">eson_15</span>-->  
           
         <jsp:setProperty property="*" name="person"/>  
         <!-- 用所有的请求参数为bean的属性赋值   
              http://localhost:8080/day09/1.jsp?name=eson_15&password=123&age=12  -->  
              
         <%  
            System.out.println(person.getName());  
            System.out.println(person.getAge());  
            System.out.println(person.getPassword());  
          %>  
            
          <jsp:getProperty property="name" name="person"/>       
      </body>  
    </html>  

     Jsp与javaBean比较简单,就介绍这么多吧~如有错误之处,欢迎留言指正~

  • 相关阅读:
    Python函数参数学习笔记
    Python基础笔记
    winform碎片
    常用sql语句
    《零基础入门学习Python》学习过程笔记【021匿名函数】
    统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话
    《零基础入门学习Python》学习过程笔记【020函数的局部变量和全全局变量内部函数和闭包】
    编写一个函数,分别统计出传入字符串参数(可能不止一个参数)的英文字母,空格,数字和其他字符的个数
    写一个函数,判断一个字符串是否为回文联
    《零基础入门学习Python》学习过程笔记【019函数返回值问题】
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/5923676.html
Copyright © 2020-2023  润新知