天天看點

《Servlet和JSP學習指南》一1.11 使用部署描述符

在前面的範例中已經學過,編寫和部署servlet應用程式是很容易的。部署的一個方面是給servlet映射配置一條路徑。在那些例子中,利用webservlet注解類型給一個servlet映射了一條路徑。

使用部署描述符是配置servlet應用程式的另一種方法,關于部署描述符的詳細讨論,可檢視第16章的内容。部署描述符總是命名為web.xml,并放在web-inf目錄下。本章将介紹如何建立一個名為app01c的servlet應用程式,并為它編寫一個web.xml檔案。

app01c有兩個servlet:simpleservlet和welcomeservlet,以及一個映射servlet的部署描述符。代碼清單1-5和代碼清單1-6分别展示了simpleservlet和welcomeservlet。注意,servlet類沒有用@webservlet進行标注。部署描述符如代碼清單1-7所示 。

《Servlet和JSP學習指南》一1.11 使用部署描述符
《Servlet和JSP學習指南》一1.11 使用部署描述符
《Servlet和JSP學習指南》一1.11 使用部署描述符
《Servlet和JSP學習指南》一1.11 使用部署描述符

使用部署描述符有許多好處。第一,可以包含@webservlet中沒有的元素,如load-on-startup元素。這個元素在應用程式啟動時加載servlet,而不是第一次調用servlet時加載。使用load-on-startup意味着,servlet的第一次調用并不比後續的調用更占用時間。如果servlet的init方法比較費時的話,這個元素就特别有幫助。

使用部署描述符的另一個好處是,如果需要修改配置值,如servlet路徑,就不需要重新編譯servlet類。

此外,可以将初始參數傳給一個servlet,并且不需要重新編譯servlet類就可以對它們進行編輯。

部署描述符還允許覆寫servlet注解中指定的值。servlet中的webservlet注解,如果沒有在部署描述符中進行聲明,那麼它将是無效的。但是,一個帶有部署描述符的應用程式,如果對于不在其部署描述符中的servlet進行标注,則其仍然有效。這意味着,可以在标注完servlet之後,又在同一個應用程式的部署描述符中聲明servlet。

圖1-8展示了app01c的目錄結構。這個目錄結構與app01a的并沒有太大的差別。唯一的不同在于,app01c在web-inf中有一個web.xml檔案。

《Servlet和JSP學習指南》一1.11 使用部署描述符

在部署描述符中聲明了simpleservlet和welcomeservlet之後,就可以利用下面這些url來通路它們了:

《Servlet和JSP學習指南》一1.11 使用部署描述符

關于部署和部署描述符的更多資訊,可檢視第16章的内容。