国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JSP第三篇【JavaBean的介紹、JSP的行為--JavaBean】

劉德剛 / 648人閱讀

摘要:不存在則實例化一個新的對象并將它以指定的名稱存儲到指定的域范圍中。

什么是javaBean

JavaBean就是一個普通的java類,也稱之為簡單java對象--POJO(Plain Ordinary Java Object),是Java程序設(shè)計中一種設(shè)計模式,是一種基于 Java 平臺的軟件組件思想

JavaBean遵循著特定的寫法,通常有以下的規(guī)則:

有無參的構(gòu)造函數(shù)

成員屬性私有化

封裝的屬性如果需要被外所操作,必須編寫public類型的setter、getter方法

上面的文字看起來好像很高大上,javaBean其實非常簡單,下面的代碼就是按照特定寫法、規(guī)則編寫的一個JavaBean對象


    public class Person {
        private String username ;
        private int age;
    
        public Person() {
    
        }
    
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

為什么需要使用Javabean

使用javaBean的好處就是:封裝,重用,可讀

下面引用知乎一段回答:

JaveBean你可以理解為一輛貨車,在你的java端和web頁面進行數(shù)據(jù)傳遞的載體,你當(dāng)然可以每個變量多帶帶傳遞,或者使用集合傳遞,但是javabean可以使你的數(shù)據(jù)更有可讀性,方便開發(fā)時明確變量的意義,也使其他閱讀你代碼的人能直接你的意圖

如果把bean類與數(shù)據(jù)庫聯(lián)合使用,一張表使用bean類,可以使你的代碼更加簡潔高效,易于理解,現(xiàn)在大多數(shù)框架都會使用這種機制。

JSP行為--JavaBean

JSP技術(shù)提供了三個關(guān)于JavaBean組件的動作元素,即JSP行為(標(biāo)簽),它們分別為:

【在JSP頁面中查找javaBean對象或者實例化javaBean對象】

【設(shè)置javaBean的屬性】

【獲取javaBean的屬性】

jsp:useBean

標(biāo)簽用于在指定的域范圍內(nèi)查找指定名稱的JavaBean對象

存在則直接返回該JavaBean對象的引用

不存在則實例化一個新的JavaBean對象并將它以指定的名稱存儲到指定的域范圍中

語法:

    

如果JSP不支持這個行為,我們要使用Person類是這樣使用的

    <%--這里需要導(dǎo)入Person類--%>
    <%@ page import="domain.Person" %>

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        
    
    
    
    
    <%
        //new出對象
        Person person = new Person();

        person.setName("zhongfucheng");
        System.out.println(person.getName());
    %>
    
    
    

效果如下

我們使用就顯得非常簡潔,不用導(dǎo)包,不用new出對象

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        
    
    
    
    
    <%
        person.setName("zhongfucheng");
        System.out.println(person.getName());
    %>
    
    

也可以實現(xiàn)同樣的效果:

有人可能會想,憑什么寫一個這樣的代碼就可以創(chuàng)建出一個對象出來

現(xiàn)在我把JavaBean中無參的構(gòu)造函數(shù)改成有參的,我們看看會出現(xiàn)什么情況,出現(xiàn)異常了!

     public Person(int age) {
            this.age = age;
        }

內(nèi)部原理是這樣子的:

通過上面的代碼我們也知道了為什么要有一個無參的構(gòu)造函數(shù)內(nèi)部在new 對象的時候是沒有傳遞參數(shù)進去的!

jsp:setProperty

語法:

    

在語法上可分為4種模式

自動匹配

指定屬性

指定參數(shù)【很少用】

指定內(nèi)容【很少用】

當(dāng)我們沒有學(xué)習(xí)到,我們獲取表單的信息,然后導(dǎo)入到j(luò)avaBean對象中是這樣的一種情況

這是表單的頁面代碼

    
用戶名: 年齡:

這是處理表單提交過來數(shù)據(jù)的jsp的代碼


    
    <%
        int age = Integer.parseInt(request.getParameter("age"));
        
        person.setAge(age);
    
        System.out.println(person.getAge());
        
    %>

這是可以完成的,但是相對來說,比較麻煩!

我們來使用了來看看:

    

    <%--指定屬性名稱為age--%>
    
    <%
        System.out.println(person.getAge());
    %>

也可以完成,并且代碼更少,功能更強大

代碼更少可以直觀看出來,為什么我說它功能更加強大呢?表單提交過來的數(shù)據(jù)都是字符串,在我們沒有用前,我們存儲設(shè)置int類型或其他非字符串類型的數(shù)據(jù)是需要強轉(zhuǎn)的!但是不需要我們強轉(zhuǎn),它內(nèi)部自動幫我們轉(zhuǎn)換了

我們再來使用一下自動匹配來感受它的強大之處吧

    

    <%--property的值設(shè)置為*就代表自動匹配--%>
    
    <%
        System.out.println(person.getAge());
        System.out.println(person.getName());
    %>

我們再來看一下效果:

看到這里,有人可能會覺得好神奇:只要設(shè)置property的值就可以將表單傳遞過來的數(shù)據(jù)封裝到JavaBean對象中了!這究竟是這樣做到的???

細(xì)心的朋友會發(fā)現(xiàn),JavaBean的屬性名稱和表單的name屬性設(shè)置的名稱是一模一樣的

        private String username ;
        private int age;

        用戶名:
        年齡:

如果我設(shè)置不一樣還能不能用?我們試試:表單name屬性的username改成是user

     用戶名:

我們再來看看還能不能把表單的數(shù)據(jù)完整地封裝JavaBean對象中

我們可以發(fā)現(xiàn):要想能夠把表單帶過來的數(shù)據(jù)成功封裝到JavaBean對象上,名字要一致!也就是說:JavaBean屬性名要和表單的name的名稱一致

至于原理,它是通過反射來做的,調(diào)用了內(nèi)省的方法!,我們看編譯后的JSP就明白了。

jsp:getProperty

語法:

該jsp行為十分簡單,我們來使用一下就知道了。

    <%--使用輸出--%>
    
    

效果:

原理如下

如果文章有錯的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章的同學(xué),可以關(guān)注微信公眾號:Java3y

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68467.html

相關(guān)文章

  • Java3y文章目錄導(dǎo)航

    摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...

    KevinYan 評論0 收藏0
  • JSP面試題都在這里

    摘要:下面是我整理下來的知識點圖上的知識點都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。在中,尤其重要的是對象。 下面是我整理下來的JSP知識點: showImg(https://segmentfault.com/img/remote/1460000013229216?w=4962&h=2653); 圖上的知識點都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。 JSP常見面試題 jsp靜態(tài)包含和動態(tài)包含的區(qū)別 j...

    gaosboy 評論0 收藏0
  • JSP 學(xué)習(xí)記錄

    摘要:對象具有請求域,即完成客戶端的請求之前,該對象一直有效。提交的數(shù)據(jù)量最多不超過。安全性較低但效率比方式高。適合提交數(shù)據(jù)量大,安全性高的用戶信息。除非本次會話的所有頁面都關(guān)閉后再重新訪問某個或者,將會創(chuàng)建新的會話。 JSP 簡介 全名為Java Server Pages,其根本是一個簡化的Servlet設(shè)計,實現(xiàn)了在Java當(dāng)中使用HTML標(biāo)簽。JSP是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),也是Java...

    BearyChat 評論0 收藏0
  • Web開發(fā)模式【Mode I 和Mode II介紹、應(yīng)用案例】

    摘要:開發(fā)模式的介紹在開發(fā)模式中,有兩個主要的開發(fā)結(jié)構(gòu),稱為模式一和模式二首先我們來理清一些概念吧主要對數(shù)據(jù)的操作,增加修改刪除等原子性操作。 開發(fā)模式的介紹 在Web開發(fā)模式中,有兩個主要的開發(fā)結(jié)構(gòu),稱為模式一(Mode I)和模式二(Mode II). 首先我們來理清一些概念吧: DAO(Data Access Object):主要對數(shù)據(jù)的操作,增加、修改、刪除等原子性操作。 Web層...

    longmon 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<