国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

MoreJSP編程實踐(中)

2019-11-18 16:21:58
字體:
供稿:網(wǎng)友
      
  利用servlet filter的特點
servlet filter是Servlet2。3規(guī)范中引入的,但是這些filter同樣有利于jsp開發(fā)和維護。因為JSPs需要被轉(zhuǎn)換成servlets,JSPs與servlet技術(shù)緊密相關(guān)。因此servlet規(guī)范的重要發(fā)展會影響到JSP的發(fā)展,對此你不應該感到奇怪。
Servlet filters是Intercepting Filter模式的J2ee實現(xiàn),因此提供了這個模式的所提供的特點,包括更好的維護性,少的代碼冗余以及更好的可移植性。這是因為:通常你需要加入服務到每個jsp頁面中,而現(xiàn)在可以通過將這些服務放到一個filter中。并且這些JSPs根本不需要這些filter的存在。因為在可插入的filters與JSPs之間沒有關(guān)聯(lián)性,因此在filter中的修改將不會直接影響到JSPs。你可以使用filter鏈,使用不同的filter的組合,每個filter用來實現(xiàn)不同的目的。

JSP網(wǎng)絡應用中servlet filter的作用
下面的兩個例子說明了在基于JSP的網(wǎng)絡應用中servlet filter的作用。在許多的安全配置中,每一個JSP頁面都會檢驗會話ID和其他一些安全性來授權(quán)一個JSP調(diào)用。你可以將這些在每個JSP頁面中的檢驗代碼移植到一個servlet filter中,并且確保這個filter在調(diào)用每個jsp頁面之前被調(diào)用。這樣就提高了JSPs的可維護性和可移植性。你可以僅僅的在這一個servlet中進行一些安全檢驗方面的修改,或者是在其中加入一些和安全相關(guān)的代碼。而不是在每一個JSP頁面中進行修改。如果將來整個安全機制改變了,系統(tǒng)中唯一要修改的地方僅僅是這個filter,獨立的JSP頁面將不需要任何修改。
在上一篇“JSP Best PRactices”中,我推薦將異常信息存儲到“Secondary Storage”中,并且僅僅的提供給用戶一個可以檢索這些異常信息的一個標志(and only providing the user with an identifier to search the storage for the entire exception trace)。在這種情況下servlet filter非常的有用。你可以通過配置來使網(wǎng)絡應用(Web application)在調(diào)用異常JSP時自動的來執(zhí)行用來記錄異常日志的filter。Sevlet規(guī)范提出了許多的潛在的servlet filter用法。
為JSPs的創(chuàng)建API文檔(document.nbspthe APIs for your JSPs)
java的許多悅?cè)诵囊獾奶攸c之一便是它支持JavaDoc。通過JavaDoc可以快速而容易的為java代碼提供Web-based的文檔。不幸的是,javadoc工具不支持JSP,并且JSP規(guī)范沒有“喚起”一個方法來提供“JSP APIs”。

什么是JSP API?
能夠不通過閱讀JSP的全部的代碼就能夠快速的確定一些JSP方面是非常之有用的。比方說,你需要知道哪些變量是綁定到會話(session),請求(request)和應用(application)的范圍,并且這些變量是具體的被綁定到了具體的哪一個范圍之上。另外一個JSP API用處的例子是在JSP segment之中,segment需要知道在被包含的時候,調(diào)用它們的JSP中已經(jīng)聲明和制定了哪些變量(Another example of useful JSP API information is denoting in JSP segments which variables they require the calling JSP to have declared and defined when including them)。
JSP規(guī)范沒有涉及關(guān)于如何的建立JSP API的文檔。Sun的JSP 1.x 代碼公約文檔討論將注釋和作者,版權(quán),以及描述的信息一起寫在JSPs的上部,但是我喜歡更詳細的記錄JSPs的期望的輸入(but I like to document.nbspmy JSPs' eXPected inputs more thoroughly)。
因為JSP規(guī)范中沒有涉及到這些,因此沒有一個標準的用來注釋JSP API。一個方法是在JSP中使用java代碼(scriptlets)并且在代碼中嵌入javadoc形式的注釋(/** javadoc comment */)。盡管我很少在JSPs中使用java代碼,但是這是在服務器端保留這些注釋的最簡單的方法。使用xml/Html風格的注釋會將JSP API暴露在客戶端,這是一個很不好的方法。
我知道有兩種免費可以使用的產(chǎn)品可以用來為你的JSPs做注釋,SourceForge.net的JspDoc以及OSDN(Open Source Development Network)的Freshmeat.net的JSPDoc。(關(guān)于兩種工具的詳細情況見resource【http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp-p3.html#resources】).這里我將簡要的介紹一下這兩個工具。

JspDoc(SourceForge)
SourceForge的JspDoc可以用來為JSPs生成Javadoc風格的文檔。
這個工具通過將XML-Compliant的標簽放入到Javadoc風格的注釋(/** */)之中,而這些注釋是放在了JSP page的java代碼中。這個工具的缺點是目前它僅僅支持JSP pages,盡管對JSP document.支持已經(jīng)在計劃列表中。
這個工具還提供了轉(zhuǎn)換JSP pages到JSP document.功能。因為我從一開始就編寫JSP document.因為我沒有用過這項功能,但是對于想從JSP pages轉(zhuǎn)換到JSP document.用戶來說,這是一個很好的工具。還要另外一個功能就是將JSP document.換到JSP pages。

JSPDoc(Freshmeat.net)
Freshmeat的JSP 文檔生成器 JSPDoc從JSPs中抽取信息來創(chuàng)建Javadoc風格的基于Web的文檔頁面。這個工具的一個優(yōu)點是它能夠?qū)a(chǎn)生的JSP文檔與用Javadoc工具產(chǎn)生的java類的文檔結(jié)合起來。缺點是,為了產(chǎn)生注釋要求有一個相當嚴格的注釋結(jié)構(gòu)。這個特殊的語法使用了Javadoc的(/** */)但是并不能夠識別@符號,而@在標準javadoc是有一定的含義的。另一個缺點就是這個工具不支持XML-compliant的JSP document.而是要求用<%%>的語法結(jié)構(gòu)。This prodUCt is available under the Mozilla public license.
JSP document.tion for JSP document. 因為JspDoc和JSPDoc都不支持JSP document.我利用JSP document.XML-compliance的特性來產(chǎn)生Javadoc形式的文檔。使用XSLT stylesheet,可是很容易的來為JSP document.建HTML頁面形式的注釋文檔。而且不需要自定義的解析。因為當你的JSP是一個正確的XML文檔時有標準的工具(比方Xalan)能夠進行這些處理。具體參考(”JSP document.tion with XSLT”  http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp-p3.html#resources)。

相關(guān)文章:
翻譯:More JSP編程實踐(上)

matrix開源技術(shù)經(jīng)onjava授權(quán)翻譯并發(fā)布.
如果你對此文章有任何看法或建議,請到Matrix論壇發(fā)表您的意見.
注明: 如果對matrix的翻譯文章系列感興趣,請點擊oreilly和javaworld文章翻譯計劃查看詳細情況
您也可以點擊-chessboy查看翻譯作者的詳細信息

(出處:http://m.survivalescaperooms.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙泉市| 元氏县| 阿荣旗| 章丘市| 电白县| 宁明县| 和林格尔县| 灵武市| 射洪县| 衡山县| 桑植县| 金湖县| 响水县| 吉安市| 静乐县| 泾阳县| 朝阳县| 台州市| 壶关县| 拉萨市| 寿光市| 井陉县| 贵州省| 承德市| 柞水县| 晋州市| 鹿邑县| 庄浪县| 皋兰县| 垣曲县| 乐山市| 临沧市| 乡宁县| 隆安县| 乌兰察布市| 石阡县| 和林格尔县| 通州市| 托克逊县| 韶关市| 娄烦县|