Servlet和jsp的一個重大的區別即是Servlet可以通過web.XML文件的配置讓Servlet在Web容器啟動時就自動啟動Servlet。可以利用Servlet的這個特性不變化的數據事先加載到Web應用服務器中以便緩存使用。
假設,我們系統的用戶在系統部署前就已經創建好,以後不常發生變化,那麼我們可以在Web應用程序啟動時就將其下載緩存到Web應用服務器內存中,假如用戶發生變化可以手工調用這個Servlet進行刷新。下面我們就通過Servlet向導創建這個UserCacheServlet,它在Web容器啟動時自動下載並緩存系統所有用戶Id和用戶名:
1.啟動創建Servlet向導,填寫Servlet名字
通過File->New...->Web->雙擊Standard Servlet圖標啟動創建Servlet向導的第一步,如下圖所示:
圖 2填寫Servlet名字
在Class name中填入Servlet的名字:UserCacheServlet,在Package中填入bookstore.servlet作為包名。按Next到下一步。
2.選擇Servlet所要實現的方法。
我們在前面已經介紹了Servlet通過不同的doXxx()方法的響應HTTP請求方式,你可以在向導的第2步選擇需要定義哪些doXxx()方法。默認情況下doGet()方法被勾選,即通過HTTP GET請求方式訪問Servlet。通過帶參的URL訪問Servlet時,Servlet就用doGet()方法響應這個請求。由於我們只是假設用戶數據不常變動,並不是說永遠不變動,所以我們在Web容器初始化時,希望通過UserCacheServlet自動加載用戶數據到緩存中,當數據庫表T_USER的用戶數據發生變動時,我們可以手工調用UserCacheServlet,讓其刷新緩存中的用戶數據。
Web容器啟動時自動初始化UserCacheServlet,此時init()方法被調用,我們可以通過init()方法加載用戶數據,當用戶通過URL請求刷新用戶數據時,UserCacheServlet通過doGet()方法響應這個HTTP GET請求。也就是說,我們需要實現doGet()方法,所以我們接受向導的默認設置,如下圖所示:
圖 3 選擇需要覆蓋的Servlet響應方法
按Next跳過第3步到向導的第4步。
3.指定訪問Servlet的路徑
圖 4 指定Servlet訪問路徑
·Name:usercacheservlet,Servlet在web.xml配置文件中所取的名字
·URL pattern:/usercacheservlet,訪問這個Servlet的匹配路徑。指定這個訪問路徑後,假設Web應用程序部署在http://localhost:8080/webModule下,則通過http://localhost:8080/webModule/usercacheservlet訪問servlet。
直接按Finish創建Servlet。
打開web.xml文件,你可以找到關於UserCacheServlet聲明和訪問的部署描述信息:
·<servlet>節點:描述servlet的名字及類名。
·<servlet-mapping>節點:描述servlet訪問匹配路徑。
雙擊工程窗格資源樹的webModule節點,JBuilder在內容窗格中打開用於編輯web.xml文件的Web模塊DD編輯器(Web Module DD editor),此時結構窗格顯示出web.xml文件的結構,如下圖所示:
圖 5 結構窗格的web.xml文件結構樹
帶
圖標的節點表示已經有配置內容,而未帶
圖標的節點表示暫時還沒有對應的配置內容。我們展開Servlets節點,定位到usercacheservlet並雙擊這個節點,DD編輯器調整界面對usercacheservlet這個Servlet進行配置,如下圖所示: