Servlet學習小結(上)

Servlet簡介

**servlet是sun公司提供的一門用於開發動態web資源的技術
**servlet技術是基於 請求-響應 編程模型
**Sun公司在其API中提供了一個servlet接口,用戶若想要開發一個動態web資源(開發一個Java程序向瀏覽器輸出數據)需要完成以下兩個步驟

a.編寫一個類實現servlet接口

b.把開發好的JAVA類部署到web服務器中

serlvet作用:

1、接受瀏覽器發送過來的消息。
2、給瀏覽器返回消息。瀏覽器認識html。可以動態去輸出html。

Request:請求。客戶端向服務端發送的信息。
Response:響應。服務器向客戶端放鬆的信息。
通常請求和響應是成對出現的。

瀏覽器請求—serlvet,serlvet會生產html。把html傳送給瀏覽器(響應)。瀏覽器看到內容是html。

sun公司提供過的serlvet的api在javaEE的規範中。如果要使用servlet需要使用javaEE的api。(javeEE包) javaEE相關的包,(myeclipse自帶。當新建一個web工程的時候,myeclipse會自動的把javaEE包導入工程中。) 注意:javaEE的api並不在jdk中。

編寫serlvet的步驟:
1.實現serlvet接口(javax.servlet.Servlet)
2.重寫serlvert接口中的service方法
3.在WebRoot/WEB-INF/web.xml中配置servlet的路徑 。瀏覽器訪問servlet的路徑web.xml(新建web工程的時候,myeclipse自動創建出來的)

web.xml文件詳解

這裏寫圖片描述

url-pattern中的內容只是一個名字而已,隨便寫什麼都可以!!!這個跟在瀏覽器中訪問html文件是不一樣的兩個概念!!!!

瀏覽器訪問servlet過程小結

這裏寫圖片描述

url-pattern三種配置
1、完全路徑匹配,以”/”開頭 後面是具體的路徑信息。
你輸入什麼內容。訪問的時候,就需要輸入什麼內容,纔可以找到對應的servlet
例如

<url-pattern>/hello</url-pattern>

在訪問的時候 http://ip:端口/應用名/hello 纔可以找到hello的servlet
2、目錄匹配,以/*結尾
例如 /abc/* —這這個url-patten 對應的servlet
在訪問的時候只有/abc/xx /abc/dd /abc/cc
http://ip:端口/abc/abx
http://ip:端口/abc/bdsf
/abc/ssss
/abc/fdsafd/asdf/asdf
3、擴展名匹配 *.擴展名
*.do
*.action
當訪問的時候 輸入a.do b.do
/ddd/asdf/a.do
訪問的時候aa.do
/abc/a.do
在url進行匹配的時候,會尋找更具體的進行匹配
1完全路徑》2目錄匹配》3擴展名匹配

servlet的生命週期

init方法:當服務器創建一個serlvet的時候,會去調用init方法。 當我們第一次去訪問一個servlet的時候,會去創建這個servlet對象。並且只會創建一次。
如果配置了load-on-startup 表示服務器啓動的時候創建servlet。
service方法:客戶端每一次請求,tomcat都會去調用servcie方法。處理用戶的請求。並且給其響應。每一次請求都會調用servcie方法。
destroy 方法:當服務器銷燬一個servlet的時候,會調用裏面的destory方法。 當我們的web服務器,正常關閉的時候,會去調用destroy方法。否則不會調用destroy的方法。

**

在瀏覽器中,如何去訪問一個html內容。

**
這個問題困擾了一個下午一直沒看明白路徑的書寫,現在終於明白了!!!
首先喲啊明確的是我們項目部署的時候只會部署webRoot目錄,所以說所有的路徑都是相對於webroot目錄的;
http://localhost:8080/day09首先根據這個地址定位到web項目,後面跟的纔是我們需要訪問的動態文件的路徑,所以說路徑都是相對於webroot的!!!
因爲我們自己寫的html文件都是寫在webroot根目錄下面的

小結
這裏寫圖片描述

發佈了184 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章