乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      opencms是如何管理jsp文件的

       bluecrystal 2007-06-25
      opencms是如何管理jsp文件的
      通常opencms的文件存放在數(shù)據(jù)庫(kù)中,也就是所謂的Virtual File System (VFS)。這意味著在本地文件系統(tǒng)中不存在和OpenCms workplace的explorer視圖的相同的文件結(jié)構(gòu)。然而,為了讓jsp文件正常工作,opencms中所有的jsp文件“鏡象”到了本地文件系統(tǒng)中。
         讓我們首先看一下一個(gè)“標(biāo)準(zhǔn)”的jsp文件是如何被處理的:
      1. jsp文件必須存在于web應(yīng)用的目錄中。
      2. 文件的后綴必須是.jsp(你可以通過(guò)配置web.xml對(duì)此做修改)。
      3.  當(dāng)servlet容器接收到針對(duì)web應(yīng)用的jsp文件的請(qǐng)求時(shí),被請(qǐng)求的jsp文件首先要轉(zhuǎn)換成java源文件,即.java文件。
      4. 在轉(zhuǎn)換的過(guò)程中,jsp標(biāo)簽(如<%@ include file= "..." %>)被解析并轉(zhuǎn)換成java代碼。
      5. 轉(zhuǎn)換的java文件實(shí)現(xiàn)Servlet接口,并被編譯為class文件。
      6. 最后,調(diào)用class的service()方法。
      為了使opencms獨(dú)立于servlet容器,它使用了一個(gè)小技巧-將jsp文件從VFS中鏡象到本地文件系統(tǒng),方法如下:
      1. 對(duì)opencms所有資源的請(qǐng)求都由opencms Servlet來(lái)處理,該servlet一般映射為/opencms/opencms。
      2.  當(dāng)opencms收到對(duì)jsp資源的請(qǐng)求時(shí),它將被請(qǐng)求jsp文件的內(nèi)容導(dǎo)入到opencms web應(yīng)用的根目錄的一個(gè)子目錄/WEB-INF/jsp中。
      3.  因?yàn)閛pencms的資源分為Online和offline,/WEB-INF/jsp中存在子目錄online和offline和此對(duì)應(yīng)。
      4. 在此目錄中,被導(dǎo)出的jsp文件擁有完整的VFS路徑結(jié)構(gòu)和.jsp后綴。例如,你的文件在VFS中是"/index.jsp",被導(dǎo)出后它將是WEB-INF/jsp/online/index.jsp.jsp文件(譯者注:目前opencms6.2.1可以判斷導(dǎo)出的文件是否存在jsp后綴,而不是傻傻的直接添加)。我們可以將這個(gè)叫做jsp的“轉(zhuǎn)換文件名”。
      5. 當(dāng)opencms導(dǎo)出資源時(shí),會(huì)使用一個(gè)簡(jiǎn)單的解析器對(duì)jsp文件內(nèi)容進(jìn)行預(yù)處理,以查找引用其他jsp文件的表情,最明顯的是<%@ include file= "..." %> 和 <%@ page errorPage= "..."%>
        如果發(fā)現(xiàn)這樣的標(biāo)簽,目標(biāo)文件名將會(huì)被這個(gè)資源在真是文件系統(tǒng)的轉(zhuǎn)換文件名替換。
      6. 現(xiàn)在在web應(yīng)用的目錄下我們已經(jīng)有了一個(gè)jsp文件,我們叫他"{file.jsp}"
      7. Opencms servlet(它仍然是控制器)現(xiàn)在調(diào)用requestDispatcher("{file.jsp}").include(),然后將控制權(quán)轉(zhuǎn)交給標(biāo)準(zhǔn)的servlet容器。
        然后按上面所述的標(biāo)準(zhǔn)jsp處理步驟進(jìn)行處理。需要注意的是,在這個(gè)過(guò)程中,opencms仍然使用Request和Response包裝器(Wrappers)來(lái)生成FlexCache條目。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多