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