一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)
通過以上過程的處理,即可實(shí)現(xiàn)對訪問權(quán)限的控制與管理。
2.3 頁面文檔管理及生成的功能實(shí)現(xiàn)
由于配置環(huán)境的需要,設(shè)計(jì)頁面較多,如果將所有頁面均存儲在Flash上,文件讀寫的問題將更為突出。為此,本文設(shè)計(jì)了一個如圖5所示的網(wǎng)頁頁面文件管理結(jié)構(gòu)來對頁面文件進(jìn)行管理。
下面介紹具體處理過程。
首先,對所有頁面無論是靜態(tài)還是動態(tài)頁面,均建立一個對應(yīng)的模板文件,并將該模板文件的內(nèi)容以全局靜態(tài)字符串的形式直接寫在程序中。在系統(tǒng)初始化時(shí)對各模板內(nèi)容的大小進(jìn)行統(tǒng)計(jì),并按下式對各文件的最大容量進(jìn)行粗略的估算:
mS=sizeof(pT)×1.2
其中:mS為估算的頁面內(nèi)容最大尺寸,sizeof(pT)則為該頁面對應(yīng)模板的實(shí)際大小(以上兩者均以字節(jié)為單位)。
按上式估算出頁面的最大尺寸后,為保證對頁面分配內(nèi)存時(shí)空間的連續(xù)性,根據(jù)所有頁面的最大尺寸和,一次性分配一個較大的內(nèi)存空間,并將該空間按各個頁面所對應(yīng)的最大尺寸依次與該頁面對應(yīng)的管理結(jié)構(gòu)內(nèi)的文件內(nèi)容指針相關(guān)聯(lián)。這樣,每次因配置的修改導(dǎo)致頁面內(nèi)容發(fā)生變化時(shí),僅需對該指針?biāo)赶虻目臻g內(nèi)容進(jìn)行修改即可,而僅在保存配置數(shù)據(jù)時(shí),通過配置文件更新函數(shù)將其存儲在Flash中。這樣既避免了為修改頁面文件內(nèi)容而申請內(nèi)存的操作,又避免了為存儲頁面內(nèi)容而頻繁進(jìn)行的Flash讀寫操作,從而提高了該EWS的效率。
評論