Sun向JCP提交Servlet3.0規範—JSR 315
Sun 已經向JCP(Java Community Process)提交了Servlet3.0規範——JSR 315(Java Specification Request)。其高階目標包括可插拔web框架、EoD(ease of development——易於開發)特徵、支援非同步和Comet、安全、與其他規範結合、以及其它各項改進。它準備包含在Java EE 6中,Java EE 6的最終版大約於2008第4季度釋出。預計不出2007年7月2日就會出評論。
以下是這些目標的詳細版本:
可插拔的Web框架
幾乎所有基於Java的web框架都建立在servlet之上。現今大多數web框架要麼透過servlet、要麼透過Web.xml插入。利用標註(Annotation)來定義servlet、listener、filter將使之(可插拔)成為可能。程式訪問web.xml和動態改變web應用配置是所期望的特性。該JSR將致力於提供把不同web框架無縫地插入到web應用的能力。
EOD
標註——利用標註來作為程式設計的宣告風格。
web應用零配置是EoD努力方向之一。部署描述符將被用來覆蓋配置。
範型(generic)——在API中儘可能利用範型。
使用其它語言增強可能需要改善API可用性的地方。
支援非同步和Comet
非阻塞輸入——從客戶端接收資料,即使資料到達緩慢也不會發生阻塞。
非阻塞輸出——傳送資料到客戶端,即使客戶端或網路很慢也不會發生阻塞。
延遲請求處理——Ajax web應用的Comet風格,可以要求一個請求處理被延遲,直到超時或一個事件發生。延遲請求處理對以下情況也很有用:如果遠端的/遲緩的資源必須在為該請求服務之前被獲得;或者如果訪問一個特殊資源,其需要扼殺一些請求以防止太多的併發訪問。
延遲響應關閉——Ajax web應用的Comet風格,可以要求響應保持開啟,以允許當非同步事件產生時傳送額外的資料。
阻塞/非阻塞通知——通知阻塞或非阻塞事件。
頻道概念——訂閱一個頻道,以及從該頻道獲取非同步事件的能力。這意味著可以建立、訂閱、退訂,以及應用一些諸如誰能加入、誰不能加入的安全限制。
安全
login/logout能力。
自注冊。
結合
結合/需求,來自REST JST JSR(JSR 311 )。
結合/需求,來自JSF 2.0 JSR(JSR 134 )。
其它
支援更好的歡迎檔案(welcome file)。
ServletContextListener排序。
容器範圍內定義init引數。
檔案上載——過程偵聽——儲存中間或最終檔案。
澄清執行緒安全問題。
Greg Wilkins,Jetty 的主要開發者和本JSR的支撐成員,反對“支援非同步和Comet”之下的一些目標。對於非阻塞輸入和輸出,他認為這一能力應該加入到容器中,而不是曝露給servlet開發者。對於延遲請求處理,他認為掛起/恢復語義會更好些,而且他們還將導致對延遲響應關閉的需求。
適當的時候現有專案將被用來作為指南。例如當前支援Comet的容器,如Grizzly 、Tomcat 和Jetty,在為Comet定義API時,將被複查(review)。“Comet 是一種程式設計技術,允許web伺服器無需任何客戶端請求而傳送資料到客戶端。它允許建立託管在瀏覽器中的事件驅動web應用。”針對於可插拔web框架,現存的一些web框架如Shale 、DWR 、Spring Web Flow 和Wiched 也將被分析。
來源:
http://www.infoq.com/news/2007/06/servlet3
以下是這些目標的詳細版本:
可插拔的Web框架
幾乎所有基於Java的web框架都建立在servlet之上。現今大多數web框架要麼透過servlet、要麼透過Web.xml插入。利用標註(Annotation)來定義servlet、listener、filter將使之(可插拔)成為可能。程式訪問web.xml和動態改變web應用配置是所期望的特性。該JSR將致力於提供把不同web框架無縫地插入到web應用的能力。
EOD
標註——利用標註來作為程式設計的宣告風格。
web應用零配置是EoD努力方向之一。部署描述符將被用來覆蓋配置。
範型(generic)——在API中儘可能利用範型。
使用其它語言增強可能需要改善API可用性的地方。
支援非同步和Comet
非阻塞輸入——從客戶端接收資料,即使資料到達緩慢也不會發生阻塞。
非阻塞輸出——傳送資料到客戶端,即使客戶端或網路很慢也不會發生阻塞。
延遲請求處理——Ajax web應用的Comet風格,可以要求一個請求處理被延遲,直到超時或一個事件發生。延遲請求處理對以下情況也很有用:如果遠端的/遲緩的資源必須在為該請求服務之前被獲得;或者如果訪問一個特殊資源,其需要扼殺一些請求以防止太多的併發訪問。
延遲響應關閉——Ajax web應用的Comet風格,可以要求響應保持開啟,以允許當非同步事件產生時傳送額外的資料。
阻塞/非阻塞通知——通知阻塞或非阻塞事件。
頻道概念——訂閱一個頻道,以及從該頻道獲取非同步事件的能力。這意味著可以建立、訂閱、退訂,以及應用一些諸如誰能加入、誰不能加入的安全限制。
安全
login/logout能力。
自注冊。
結合
結合/需求,來自REST JST JSR(JSR 311 )。
結合/需求,來自JSF 2.0 JSR(JSR 134 )。
其它
支援更好的歡迎檔案(welcome file)。
ServletContextListener排序。
容器範圍內定義init引數。
檔案上載——過程偵聽——儲存中間或最終檔案。
澄清執行緒安全問題。
Greg Wilkins,Jetty 的主要開發者和本JSR的支撐成員,反對“支援非同步和Comet”之下的一些目標。對於非阻塞輸入和輸出,他認為這一能力應該加入到容器中,而不是曝露給servlet開發者。對於延遲請求處理,他認為掛起/恢復語義會更好些,而且他們還將導致對延遲響應關閉的需求。
適當的時候現有專案將被用來作為指南。例如當前支援Comet的容器,如Grizzly 、Tomcat 和Jetty,在為Comet定義API時,將被複查(review)。“Comet 是一種程式設計技術,允許web伺服器無需任何客戶端請求而傳送資料到客戶端。它允許建立託管在瀏覽器中的事件驅動web應用。”針對於可插拔web框架,現存的一些web框架如Shale 、DWR 、Spring Web Flow 和Wiched 也將被分析。
來源:
http://www.infoq.com/news/2007/06/servlet3
相關文章
- JSR規範列表JS
- 提交規範
- Git 提交規範Git
- 前端規範之Git提交規範(Commitizen)前端GitMIT
- JSR規範,系統引數測試大全JS
- Git程式碼提交規範Git
- git 提交備註規範Git
- Git提交內容規範Git
- 前臺提交資料規範
- [譯]AngularJS Git提交資訊規範AngularJSGit
- JavaMoney規範(JSR 354)與對應實現解讀JavaJS
- 你可能會忽略的 Git 提交規範Git
- 阿里獲邀加入JCP,參與制定Java全球標準和技術規範阿里Java
- 開發中的你的Git提交規範嗎?Git
- Cz工具集使用介紹 - 規範Git提交說明Git
- Git提交規範中,常見的commit型別GitMIT型別
- 前端開發規範:命名規範、html規範、css規範、js規範前端HTMLCSSJS
- sun啟動統一ejb和jdo的永續性技術的jsrJS
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- 打造高效小團隊 - 團隊程式碼提交流程 && 規範
- 一個維護版本日誌整潔的Git提交規範Git
- Jvm上如何執行其他語言?JSR223規範最詳細講解JVMJS
- 前端規範之javascript規範前端JavaScript
- 前端規範之CSS規範前端CSS
- 前端規範之HTML 規範前端HTML
- Red Hat為Java EE 7提交新的快取規範標準Java快取
- Servlet3.0 特性Servlet
- PHP 規範 - Symfony 程式碼規範PHP
- 前端規範之nodeJs 規範前端NodeJS
- 編碼規範系列:css規範CSS
- git提交規則Git
- 『前端規範化』CSS命名規範化前端CSS
- 前端規範之vue 專案規範前端Vue
- 前端規範與思考(二)———css規範前端CSS
- 前端規範之CSS規範(Stylelint)前端CSS
- Android 程式碼規範 - 命名規範Android
- Android程式碼規範:命名規範Android
- 向Github上提交程式碼Github