成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Servlet 3.0 API的概念

開發 后端
本文簡單介紹了Servlet 3.0 API的概念,以及介紹servlet 和過濾器類的代碼示例等。

如今,像 Struts、JSF 和 Springweb 這樣的 web 框架已經被普遍接受,并已經確立成為構建 web 應用程序的技術。將這些框架集成為一個 web 應用程序并不是那么容易,因為這一過程涉及將不同的片段同化在一起,之后編輯一個描述如何將所有這些片段配合在一起的單獨描述符文件。絕大多數框架強制您在應用程序的部署描述符文件中配置像 servlet 類(通常為 控制器 Servlet)、過濾器類或者偵聽器類這樣的框架細節。這種必備配置的主要原因是當今的 web 應用程序只支持一個單獨的整體部署描述符,其中定義了所有的部署信息。當應用程序的大小增加時,外部框架的依賴關系可能也增加,從而生成復雜的部署描述符文件。正如您可能知道的,復雜描述的維護始終存在爭議。

為了解決這些問題,Servlet 3.0 API 最為顯著的概念之一是 web 片段 或者 模塊 web.xml 的思想。Web 片段是將 web 應用程序邏輯分區為 servlet、servlet-mapping、servlet-filter、filter-mapping、servlet-listener 之類的元素及其子元素。框架開發人員可以利用該功能以定義存在于框架內自己的 web 片段,開發人員可以在不修改現有的部署描述符的情況下僅僅通過將庫文件包含到應用程序的類路徑中來插入越來越多的框架。簡言之,該功能旨在當用框架或者庫進行工作時進行零配置。

對該部署描述符已經進行了更改以包含保存 web 片段細節的 這一新元素。如果該片段被打包為一個 .jar 文件且以部署描述符的形式具備元數據信息,則 web.xml 文件必須包含在 .jar 文件的 META-INF 目錄下。在部署時,器掃描應用程序的類路徑,查找所有 web 片段并加以處理。前面討論過的 metadata-complete 標志在應用程序啟動期間控制 web 片段的掃描。以下顯示了一個示例 web 片段:

  1. <web-fragment> 
  2. <servlet> 
  3. <servlet-name>myservlet</servlet-name> 
  4. <servlet-class>samples.MyServlet</servlet-class> 
  5. </servlet> 
  6. <listener> 
  7. <listener-class>samples.MyListener</listener-class> 
  8. </listener> 
  9. </web-fragment> 

為了提供增強的可插拔性,Servlet 3.0 借助添加到 ServletContext 的 API 為增加 servlets 和過濾器類的編程提供了非常需要的支持。這些新的 API 使您能通過編程來聲明 servlets、過濾器類及其 URL 映射。這些類在應用程序啟動或者運行期間進行初始化。最重要的是,您只能通過 ServletContext 的 contextInitialized 方調用這些 API。有關這些 API 的更多信息,請參閱 Servlet 3.0 API 文檔。通過編程添加 servlet 和過濾器類的代碼示例如下所示:

  1. @ServletContextListener  
  2. public class MyListener {  
  3. public void contextInitialized (ServletContextEvent sce) {  
  4. ServletContext sc = sce.getServletContext();  
  5.  
  6. //Declare servlet and servlet mapping  
  7. sc.addServlet("myServlet", "Sample servlet", "samples.MyServlet", null, -1);  
  8. sc.addServletMapping("myServlet", new String[] {"/urlpattern/*"});  
  9.  
  10. //Declare filter and filter mapping  
  11. sc.addFilter("myFilter", "Sample Filter", " samples.MyFilter", null);  
  12. sc.addFilterMapping("myFilter", new String[] {"/urlpattern/*"}, "myServlet",  
  13. DispatcherType.REQUEST, false);  
  14. }  

大家應該都遇到過 servlets 運行緩慢的問題,特別是 servlets 必須等待來自 web 服務、JDBC 連接、JMS 消息等的響應。在當前情況下,servlet 在生成響應前需要等待進程完成,這會導致低效率阻塞操作消耗容器的線程或者其他有限的資源。在采用 JDBC 連接時的另一個不利影響是,數據庫可能存在許多等待訪問的阻塞線程。這種情況最終將導致整個 web 容器的線程不足和服務質量下降。

為了克服上述缺點,Servlet 3.0 添加了對掛起和恢復請求處理的支持,使 servlet 以異步、非阻塞的方式響應請求(這就是編程的 Comet 樣式)。當一項請求被掛起時,處理請求的線程將在不生成任何響應的情況下返回給容器并準備執行其他任務。處理請求的 resume 方法恢復請求處理。只要當所請求的資源可用時,處理事件的線程才恢復被掛起的請并進行處理以生成響應。以下列舉的是異步 servlets 的一些功能:

即使數據到達緩慢(非阻塞輸入),也能在沒有阻塞事件的情況下從客戶機接收數據。

即使客戶機或者網絡運行緩慢(非阻塞輸出),也能在不發生阻塞的情況下向客戶機發送數據。

能處理被延遲的請求。如果在響應請求前必須獲得遠程/緩慢的資源,或者如果需要抑制訪問特定的資源以防止過多的同步訪問,對被延遲事件的處理是非常有用的。

能處理被延遲的響應關閉;也就是響應將保持打開以允許在發生異步事件時發送其他數據。

能通知阻塞或者非阻塞事件。

將新的 API 添加到 ServletRequest 和 ServletResponse,用于掛起、恢復和查詢請求的狀況、啟用禁用和查詢響應的狀況。開發人員可以分別通過 requestSuspended(), requestResumed() 和 requestCompleted() 方法使用請求的 resume、suspend 和 complete 方法通知事件。有關這些方法的詳細信息請參閱 Servlet 3.0 API。

【編輯推薦】

  1. Servlet在session中共享鏈接
  2. 配置Servlet開發環境
  3. Future Response Servlet特性
  4. Tomcat Java Servlet引擎安全設定
  5. Jetty-Servlet容器額外功能
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2009-07-03 18:26:11

Servlet過濾器

2009-07-08 09:35:53

Java ServleServlet 3.0

2009-07-09 13:45:06

Servlet基本結構

2009-07-06 09:23:51

Servlet定義

2021-07-05 15:22:03

Servlet過濾器客戶端

2009-07-07 17:51:50

Java Servle

2009-07-03 13:22:37

調用Servlet

2009-07-03 17:18:34

Servlet多線程

2009-07-09 16:47:26

Servlet的Web

2009-07-06 17:11:38

Servlet文件上傳

2023-03-12 15:25:37

2009-07-08 11:37:32

Servlet API

2022-11-24 13:17:43

2010-05-11 16:22:40

2009-07-07 15:12:06

Servlet API

2009-07-07 02:15:03

Servlet2.5

2009-07-06 10:41:38

flex與servle

2009-07-07 09:22:27

Servlet性能測試

2009-07-07 17:10:57

JSP和Servlet

2009-09-11 11:16:53

C# Attribut
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 四虎永久免费地址 | 99国产视频| 夜夜操操操 | 五月天天色 | 欧美一区在线看 | 日韩欧美国产精品一区二区三区 | 一区二区三区国产在线观看 | 日韩一区不卡 | 偷偷操视频 | 精品国产乱码久久久久久88av | 久久久久国色av免费观看性色 | 日韩国产欧美视频 | 欧美在线网站 | 国产精品免费观看 | 久久黄网| 在线看片网站 | 国产一区二区三区免费 | 毛片在线免费播放 | 免费福利视频一区二区三区 | 中文字幕亚洲一区二区三区 | 99一级毛片 | 视频在线一区二区 | 欧美一区二区三区在线观看 | 一级在线观看 | 青青草一区二区 | 日韩中文字幕一区二区 | 性视频网 | 国产欧美一区二区三区久久人妖 | 午夜精品久久久久99蜜 | 99热这里| 欧美在线a | 国产一级片精品 | 国产一区二区在线视频 | 久久精品av | 看av在线| 日本欧美大片 | 综合久久av | 久久久久久女 | 国产福利二区 | 日韩在线 | 偷拍自拍网址 |