日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Servlet 3.0概述

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Servlet 3.0概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Servlet 3.0 –具有許多突破性的功能,這些功能最終將改變開發人員編寫和編寫JEE Web應用程序的方式–有人可能會說,它的約定違背了我們對事物在理論上“應該”如何工作的大多數理解,但這就是其中之一。創新和持續改進; 挑戰公約并提供更好,有效的解決方案。

本博客文章涵蓋的主題:

  • 易于發展–發生了什么變化?
  • Servlet和過濾器的動態注冊
  • 可插拔性
  • 捆綁的jar文件中的資源–一種稱為Web片段的新功能。
  • 易于發展

    這是JEE Development世界中的主觀主題之一–它不是一直在拖放,而是關于如何進一步完善符合標準,經過最佳慣例并經過嚴格檢查的開發方式。

    通過注釋的聲明式編程風格–在JEE6中,web.xml現在是可選的,并且現在可以通過使用注釋來標記所有POJOS。 您可以聲明Servlet,過濾器,偵聽器,初始化參數等-幾乎可以通過使用批注來配置web.xml下的幾乎所有內容。

  • @WebServlet –定義一個Servlet
  • @WebFilter –定義過濾器
  • @WebListener –定義一個監聽器
  • @WebInitParam –定義初始化參數
  • @MultipartConfig –定義文件上傳屬性
  • @ServletSecurity –定義安全約束
  • 注意:盡管可以這樣做,但是開發人員仍然可以使用web.xml覆蓋這些值。

    我在這里附上一個示例供您測試。

    Servlet和過濾器的動態注冊

    可用的另一個功能是動態注冊-在ServletContext初始化期間執行:

    public class TestServletContextListenerimplements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {ServletContext servletContext = sce.getServletContext();ServletRegistration.Dynamic dynamic =servletContext.addServlet("DynamicServlet","com.mycom.MyServlet"); dynamic.addMapping("/dynamicServlet"); // URL mappingdynamic.setAsyncSupported(true);} }

    當然,您可以查找并掛接動態servlet /過濾器

    ServletRegistration declared = ServletContext.getServletRegistration("DeclaredServlet"); declared.addMapping("/declaredServlet"); declared.setInitParameter("param", "value");

    在此處下載maven項目。

    可插拔性

    在部署描述符中無需使用樣板配置即可啟用第三方框架。 模塊化web.xml,以允許框架獨立地包含在其自己的JAR文件和編程配置API中。使用注釋。

    可插拔背后的動機是,如果需要特定的框架,則可以減少將所有配置放在一個單獨的Sile(web.xml)中的復雜性。 例如,如果開發人員需要對現有Web應用程序的Spring支持-首先要做的是將Spring的servlet /偵聽器作為其支持的一部分-將來,當出現新的EE技術時,它會變得很丑陋。您需要再次將所有內容放到web.xml文件中。

    現在,借助JEE6,您可以創建一個帶有web-fragment.xml的子項目,該子項目將模仿主web.xml上的一個部分,從而可以獨立創建和隔離進一步的改進(或可插入功能要求)。 以下是web-fragment.xml的示例

    <web-fragment><servlet><servlet-name>welcome</servlet-name><servlet-class>com.mycom.WelcomeServlet</servlet-class></servlet><servlet-mapping><servlet-name>welcome</servlet-name><url-pattern>/Welcome</url-pattern></servlet-mapping>... </web-fragment>

    它與web.xml非常/非常相似。

    在此處下載示例Web片段項目。

    捆綁的jar文件中的資源

    • 靜態和JavaServerTM Page(JSP)資源不再局限于Web應用程序的文檔根目錄
    • 可以放在WEB-INF / lib / [* .jar] / META-INF / resources中
    • 容器在處理HTTP請求和對ServletContext#getResource或ServletContext#getResourceAsStream方法的調用時必須遵循這個新位置
    • 但是,文檔根目錄中的資源優先于捆綁的JAR文件中的資源。

    有了Web片段新的資源束jar支持 ,現在可以與主父應用程序分開開發需要端到端處理的功能要求。

    經過改進的新Servlet 3.0帶來了許多有效的工具,這些工具將使開發人員可以使用該平臺創建質量更高且更強大的應用程序。 注釋/聲明性編程–使描述符達到了新的高度,因為Servlet,過濾器和偵聽器現在可以在Java代碼級別上完成。 Servlet,過濾器,偵聽器等的動態注冊可用于創建將處理特定業務案例的JIT pojos,DI和CDI支持使開發人員可以通過簡單地讓容器負責對象的制造方法和最佳方法來簡化范例總而言之,Web片段和對資源束jar的支持對開發進行了不同的分離,因為它允許隔離特定功能的Web項目,利用JEE現有技術,而無需通過父Web應用程序處理大量配置。

    參考:來自我們的JCG合作伙伴 Alvin Reyes的Servlet 3.0 ,位于Alvin“ Jay” Reyes博客博客中。

    翻譯自: https://www.javacodegeeks.com/2013/08/servlet-3-0-overview.html

    總結

    以上是生活随笔為你收集整理的Servlet 3.0概述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。