• JSP(6)—JavaBean及案例


    基础:
    一、JavaBean
    ①用作JavaBean的类必须是具有一个公共的无参数的构造方法
    ②JavaBean的属性是以方法定义的形式出现的。
    ③JavaBean的属性名是根据Setter和getter方法名称的来的,getter或setter方法去掉前缀set或get后的
    部分即为属性名,但属性名的首字母必须小写。
    ④JSP中定义了三个标签<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>分别用于创建
    和查找JavaBean的实例对象,设置JavaBean对象的属性,读取JavaBean对象的属性。
    ⑤对于JSP页面来说只要一个类是具有一个公共的、无参数的构造方法,就可以把这个类当作JavaBean来使用。
    ⑥方法:<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>

    注意使用<jsp:getProperty>跨页面传参数时需要和<jsp:useBean>一块使用,代码比较繁琐。后面可以使用EL表达式。
    a.jsp:
    < ! – 注意使用<jsp:getProperty>跨页面传参数的时侯需要和< jsp:useBean >一块使用 –>

    <a href="bean2.jsp">To bean2 Page</a>
        <jsp:useBean id="customer" class="com.shopCart.Customer.Customer" scope="session"></jsp:useBean>
        <jsp:setProperty property="username" name="customer" value="test"/>
        <a href="b.jsp">To B Page</a>
    b.jsp:
        <jsp:useBean id="customer" class="com.shopCart.Customer.Customer" scope="session"></jsp:useBean>
        username:<jsp:getProperty property="username" name="customer"/>

    案例:
    a.jsp

    <body>
    
    <!-- 注意使用< jsp:getProperty >跨页面传参数的时侯需要和< jsp:useBean >一块使用 -->
        <a href="bean1.jsp">To bean1 Page</a>
        <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
        <jsp:setProperty property="username" name="customer" value="test"/>
        <a href="b.jsp">To B Page</a>
    
    </body>

    b.jsp

    <body>
    
        <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
        username:<jsp:getProperty property="username" name="customer"/>
    
    </body>

    bean1.jsp

    <body>
    
        <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
        username:<jsp:getProperty property="username" name="customer"></jsp:getProperty>
    </body>

    bean.jsp

    <body>
    
        <!-- 不经常使用,了解即可 -->
    
        <!-- 1.jsp:useBean -->
        <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
    
        <!-- 其作用如下: -->
        <%-- <%
            //1.从scope(session)中获取id(customer)属性值,赋给class(Customer)类型的id(customer)
            Customer customer1 = (Customer)session.getAttribute("customer1");
            //2.若属性值为空,则利用反射创建一个新的对象,把该对象赋给id(customer)并以id为属性名存到scope(session)中
            if(customer == null){
                customer1 = (Customer)Class.forName("com.shopCart.Customer.Customer").newInstance();
                session.setAttribute("customer", customer1);            
            } 
        %>--%>
    
        <!-- 2.jsp:setProperty 设置属性值-->
        <jsp:setProperty property="username" name="customer" value="test"/>
    
        <!-- 其作用如下: -->
        <%-- <%
            customer.setUsername("test");
        %> --%>
    
        <!-- 3.jsp:getProperty 获取属性值-->
        username:<jsp:getProperty property="username" name="customer"/>
    
        <!-- 其作用如下: -->
        <%-- <%
            customer.getUsername();
        %> --%>
    
        <!-- 4.为所有的属性赋值, property的值为*,则自动的为所有的属性赋值为对应的请求参数的值。在地址栏中输入
        http://localhost:8080/Demo7_Cookie_Session/ Demo10_JavaBean/bean.jsp
        ?username=root&address=Beijing&cardType=Visa&card=1234-->
        <jsp:setProperty property="*" name="customer"/>
    
        <!-- 5.use:Bean 的另外一种用法 -->
        <jsp:useBean id="customer2" beanName="com.test.bean.Customer" type="java.lang.Object" scope="session"></jsp:useBean>
    
        <!-- 其作用如下: -->
        <%
            Object customer3 = session.getAttribute("customer2");
            if(customer3 == null){
                customer2 = Class.forName("com.test.bean.Customer").newInstance();
                session.getAttribute("customer2");      
            }
        %>
    
        <br><br>
        address:<jsp:getProperty property="address" name="customer"/>
        <br><br>
        cardType:<jsp:getProperty property="cardType" name="customer"/>
        <br><br>
        card:<jsp:getProperty property="card" name="customer"/>
    </body>
  • 相关阅读:
    证书格式转换
    emq知识点
    emq共享订阅
    SpringBoot
    Android网络编程Socket长连接
    Android 网络通信框架Volley简介(Google IO 2013)
    Android中的5种数据存储方式
    Android
    android解析XML总结(SAX、Pull、Dom三种方式)
    乔迁新禧
  • 原文地址:https://www.cnblogs.com/tengpengfei/p/10453978.html
Copyright © 2020-2023  润新知