在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)

            一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)

            作者: 時(shí)間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

            對(duì)于EWS中動(dòng)態(tài)頁面的生成則要經(jīng)過動(dòng)態(tài)數(shù)據(jù)解析以及解析數(shù)據(jù)的模板頁面回填這兩個(gè)過程。在通常的交互中,大量動(dòng)態(tài)數(shù)據(jù)是通過表單的形式體現(xiàn)在html頁面之中的。而一般上送的表單數(shù)據(jù)(文件上傳除外)在GET和POST兩種方法下,除了在HTTP請(qǐng)求報(bào)文中小現(xiàn)位置的不同外(GET方法下位于請(qǐng)求行,POST方法下位于實(shí)體主體部分),其組織形式并無差別,如下所示:
            e_1-v 1&e 2=v 2…&e N=v N
            其中e_N代表表單數(shù)據(jù)中的元素名,v_N代表該元素的取值。
            因此,當(dāng)連接管理模塊從請(qǐng)求報(bào)文中提取出表單數(shù)據(jù)后,即可對(duì)這兩種方法下的提交數(shù)據(jù)采用相同的解析方法。CGIC采用以下方法來實(shí)現(xiàn)其解析過程。
            首先,通過對(duì)表單數(shù)據(jù)字符串的節(jié)點(diǎn)分析,用一個(gè)單向鏈表來對(duì)表單數(shù)據(jù)中的每個(gè)元素進(jìn)行維護(hù),在鏈表成員中包括了對(duì)元素名及其值的管理,并針對(duì)不同的元素類型提供了一系列接口。解析步驟如下:
            ①用于獲取列表框取值的函數(shù)接口cgiFormSelectSingle。
            ②用于獲取文本框取值的函數(shù)接口cgiFormString。
            ③用于獲取復(fù)選框取值的函數(shù)接口cgiFormCheckboxMultiple。
            在需要訪問元素時(shí),只需提供相應(yīng)的元素名,就可方便地使用這些接口對(duì)管理鏈表遍歷來獲得相應(yīng)元素的取值。
            當(dāng)CGIC移植時(shí),只需對(duì)相應(yīng)元素解析對(duì)應(yīng)的函數(shù)進(jìn)行所選系統(tǒng)的修改即可。需要注意的是,對(duì)列表和復(fù)選框等非字符取值的獲取,還需按照用戶定義的取值設(shè)置,對(duì)相應(yīng)的接口進(jìn)行一定的修改,以適應(yīng)用戶對(duì)元素取值范圍的靈活要求。
            所謂解析數(shù)據(jù)的模板頁面回填,是指在動(dòng)態(tài)頁面中,按照模板中的頁面顯示格式,將頁面中各元素的取值寫入html模板文件中的對(duì)應(yīng)位置。html標(biāo)簽代碼如下:
            input name=“devName”type=“text”
            value=“***”size=“15”/>
            它在頁面上表示一元素名為“devName”,取值為“***”的文本框,在數(shù)據(jù)回填到模板頁面時(shí),需要根據(jù)具體的取值如“devl”寫到原“***”的對(duì)應(yīng)位置上去。結(jié)果如下:
            input name=“devName”type=“text”
            value=“devl”size=“15”/>
            本文采用以下方法來實(shí)現(xiàn)這一處理過程。首先,沒計(jì)頁面模板時(shí)在每個(gè)需要進(jìn)行動(dòng)態(tài)修改的頁面元素前加上不同的注釋語句,對(duì)以上html標(biāo)簽,可加的注釋語句如下(單獨(dú)一行):
            !-devName_id->
            在每次解析完表單數(shù)據(jù)并且需要對(duì)動(dòng)態(tài)頁面進(jìn)行重新生成時(shí),就可以通過對(duì)模板文件的逐行讀取,來查找相應(yīng)的注釋語句,從而確定數(shù)據(jù)更新的位置。然后再根據(jù)具體的元素取值生成新的html標(biāo)簽字符串,用來對(duì)注釋語句后的標(biāo)簽字符串進(jìn)行替換。通過以上過程,即可方便地實(shí)現(xiàn)解析數(shù)據(jù)的模板頁面回填,從而生成相應(yīng)的動(dòng)態(tài)頁面。
            2.4 文件下載和上傳的功能實(shí)現(xiàn)
            文件下載和上傳是經(jīng)常具有的一項(xiàng)功能,相對(duì)來說文件下載較為簡(jiǎn)單,只需將下載時(shí)訪問的URL定位于目標(biāo)文件,然后再由將該文件的內(nèi)容直接上送給瀏覽器。而文件上傳功能的實(shí)現(xiàn)則相對(duì)復(fù)雜,下面對(duì)其過程進(jìn)行詳細(xì)的說明。
            首先,要實(shí)現(xiàn)文件的上傳,在其頁面設(shè)計(jì)時(shí)必須采用POST方法來對(duì)表單數(shù)據(jù)進(jìn)行提交,并且需要在頁面中將其編碼方式修改為“multipa rt/form-data”,否則將無法在瀏覽器端進(jìn)行文件上傳。然后,通過html表單中的文件元素來進(jìn)行上傳文件的選擇。
            通過以上設(shè)置,上傳給的http報(bào)文數(shù)據(jù)將以multipart的編碼形式出現(xiàn)。其特點(diǎn)是,在每個(gè)表單元素項(xiàng)的前后均加有一行分界字符串。以文件元素為例,其格式如下:
            --------------------------------7db01d60ffc
            Content-Disposition:form-data;name=“file”; filename=“1.TXT”Content-Type:text/plain
            This is a txt file.
            --------------------------------7db01d60ffc
            其中,“----------------------------7db01d60ffc”為分界字符串。CGlC也提供了對(duì)該格式的解析支持。它首先提取出分界字符串,然后再通過cgiParsePostMultltpartInput函數(shù)的操作來實(shí)現(xiàn)報(bào)文中各表單元素?cái)?shù)據(jù)以及文件數(shù)據(jù)的解析。提取出文件數(shù)據(jù)后,即可將文件內(nèi)容按指定的路徑保存在相應(yīng)的Flash存儲(chǔ)區(qū)中。

            3 性能測(cè)試
            通過以上各環(huán)節(jié),即可實(shí)現(xiàn)一個(gè)相對(duì)完整的EWS。綜合以上各個(gè)模塊。
            在主頻600 MHz的TMS320DM642處理器上對(duì)該EWS從收到請(qǐng)求建立連接到響應(yīng)結(jié)束斷開連接的時(shí)間進(jìn)行測(cè)試,EWS性能測(cè)試如表1所列。

            本文引用地址:http://www.biyoush.com/article/149122.htm

            f.jpg


            其中,由于采用了框架結(jié)構(gòu)進(jìn)行設(shè)計(jì),在訪問索引主頁時(shí),涉及的訪問請(qǐng)求次數(shù)較多,所以其測(cè)試時(shí)間相比其他單次請(qǐng)求來說要較長一些。總體來看,該EWS具有比較快速的服務(wù)響應(yīng)時(shí)間,能夠滿足具體應(yīng)用環(huán)境的要求。

            結(jié)語
            本文在BOA和CGIC的基礎(chǔ)上,通過對(duì)其代碼的修改以及HTTP協(xié)議報(bào)文的分析,將原本運(yùn)行于Linux平臺(tái)上獨(dú)立的兩個(gè)程序進(jìn)行有機(jī)的結(jié)合,成功地將其整合為DSP/BIOS中的一個(gè)任務(wù),并提出了一種適合一般系統(tǒng)使用的訪問權(quán)限及對(duì)頁面的管理及動(dòng)態(tài)生成機(jī)制。同時(shí),完成了文件的上傳與下載功能,成功實(shí)現(xiàn)了一個(gè)相對(duì)完整的EWS。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁 1 2 3 4 下一頁

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉