Servlet基礎學習
一歹苦、JavaWEB開發(fā)的目錄結(jié)構
--應用程序根目錄/
--WEB-INF目錄:必須目錄
--web.xml:Web應用部署描述文件缓呛,必須目錄
--classes目錄:存放字節(jié)碼文件
--lib目錄:存放第三方類庫文件
--其他靜態(tài)文件:HTML、CSS、JavaScript、圖片等
二、開發(fā)Java Web應用程序的流程
- 設計目錄結(jié)構:根據(jù)具體業(yè)務需要遮精,遵照規(guī)范的目錄結(jié)構設計好Web應用程序的目錄結(jié)構。
- 編寫Web應用程序代碼:編寫業(yè)務邏輯所需的Java代碼败潦。
- 編寫部署描述文件:把Servlet本冲、初始化參數(shù)等定義到部署描述文件web.xml中。
- 編譯代碼:把編寫好的Java源代碼編譯成字節(jié)碼劫扒。
- 將Web應用程序打包:把整個Web應用程序打成jar包檬洞,以方便部署。
- 部署Web應用程序:把打好的War包部署到Web服務器上沟饥。
- 執(zhí)行Web應用程序:啟動Web服務器添怔,利用客戶端瀏覽器進行訪問測試。
注意:在具體的開發(fā)過程中贤旷,一般都會使用IDE工具广料,使用IDE工具進行Web應用程序開發(fā)時,只需要開發(fā)人員完成前三個步驟幼驶,其他步驟IDE工具可以自動完成艾杏。
Java Servlet是和平臺無關的服務器組件,它運行在Servlet容器中盅藻。Servlet容器負責Servlet和客戶的通信以及調(diào)用Servlet的方法糜颠,Servlet和客戶的通信采用"請求/響應"的模式汹族。
三、手動部署JavaWeb應用程序
- 把WebContent對應的根目錄拷貝到webapps目錄下其兴,(可以改名helloworld)
- 把程序中用到的*.class文件拷貝到classes目錄中
- 如果應用程序用到的有第三方jar包顶瞒,則拷貝到lib目錄中。
四元旬、解決手動復制
- build path中修改default folder的默認路徑榴徐,以后生成的*.class文件,可以自動輸出到tomcat的webapps中匀归。
- 如果不想手動復制WebContent目錄坑资,可以在webapps中新建catalina/localhost/**.xml文件
xml文件的docBase指的是WebContent的物理路徑,path="/"穆端,reloadable="true",reloadable:當修改了docBase下的classes目錄下的class文件時袱贮,服務器重新加載class文件。
五体啰、Servlet 容器:運行Servlet攒巍、JSP、Filter等的軟件環(huán)境荒勇。
- 可以來創(chuàng)建Servlet柒莉,并調(diào)用Servlet 的相關生命周期方法。
- JSP, Filter, Listener, Tag...都是運行在Servlet容器中沽翔,并且相關的生命周期方法都是由Servlet容器來管理的兢孝。
六、Servlet 生命周期的方法:以下方法都是由Servlet容器負責調(diào)用
- 構造器: 只被調(diào)用一次仅偎,只有第一次請求Servlet時跨蟹,創(chuàng)建Servlet的實例,調(diào)用Constructor橘沥。這說明Servlet是單實例的窗轩!
- init方法:只被調(diào)用一次,在創(chuàng)建好實例后立即被調(diào)用威恼,用于初始化當前Servlet品姓。
- service:被多次調(diào)用寝并,每次請求都會調(diào)用service方法箫措,實際用于響應請求的。
- destroy:只被調(diào)用一次衬潦,在當前Servlet所在的Web應用被卸載前調(diào)用斤蔓,用于釋放當前Servlet所占用的資源。
七镀岛、 load-on-startup 參數(shù):
- 配置在servlet節(jié)點中:
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.lucus.javaweb.HelloServlet</servlet-class>
<!-- 可以指定Servlet被創(chuàng)建的時機 -->
<load-on-startup>1</load-on-startup>
</servlet>
- load-on-startup:可以指定Servlet被創(chuàng)建的時機.若為負數(shù)弦牡,則在第一次請求時被調(diào)用友驮,若為非負數(shù),則在當前web應用被Servlet容器加載時創(chuàng)建實例驾锰,且數(shù)值越小越早被創(chuàng)建卸留。