Servlet 3.0概述
Servlet 3.0 –具有許多突破性的功能,這些功能最終將改變開發人員編寫和編寫JEE Web應用程序的方式–有人可能會說,它的約定違背了我們對事物在理論上“應該”如何工作的大多數理解,但這就是其中之一。創新和持續改進; 挑戰公約并提供更好,有效的解決方案。
本博客文章涵蓋的主題:
易于發展
這是JEE Development世界中的主觀主題之一–它不是一直在拖放,而是關于如何進一步完善符合標準,經過最佳慣例并經過嚴格檢查的開發方式。
通過注釋的聲明式編程風格–在JEE6中,web.xml現在是可選的,并且現在可以通過使用注釋來標記所有POJOS。 您可以聲明Servlet,過濾器,偵聽器,初始化參數等-幾乎可以通過使用批注來配置web.xml下的幾乎所有內容。
注意:盡管可以這樣做,但是開發人員仍然可以使用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應用程序處理大量配置。
翻譯自: https://www.javacodegeeks.com/2013/08/servlet-3-0-overview.html
總結
以上是生活随笔為你收集整理的Servlet 3.0概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向linux传文件(给linux传文件)
- 下一篇: 为什么REST如此重要