![servlet規(guī)范定義的Servlet生命周期和servlet的基礎_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/3/8d4a8070-8660-4a96-b61b-36a1db7ecb73/8d4a8070-8660-4a96-b61b-36a1db7ecb731.gif)
![servlet規(guī)范定義的Servlet生命周期和servlet的基礎_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/3/8d4a8070-8660-4a96-b61b-36a1db7ecb73/8d4a8070-8660-4a96-b61b-36a1db7ecb732.gif)
![servlet規(guī)范定義的Servlet生命周期和servlet的基礎_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/3/8d4a8070-8660-4a96-b61b-36a1db7ecb73/8d4a8070-8660-4a96-b61b-36a1db7ecb733.gif)
![servlet規(guī)范定義的Servlet生命周期和servlet的基礎_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/3/8d4a8070-8660-4a96-b61b-36a1db7ecb73/8d4a8070-8660-4a96-b61b-36a1db7ecb734.gif)
![servlet規(guī)范定義的Servlet生命周期和servlet的基礎_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/3/8d4a8070-8660-4a96-b61b-36a1db7ecb73/8d4a8070-8660-4a96-b61b-36a1db7ecb735.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1'。web服務器只能處理靜態(tài)頁面,比如瀏覽器要求訪問某個靜態(tài)頁面(即 html 文件),服務器可以產看該文件,并返回使用Servlet技術,可以使web服務器能夠處理動態(tài)資源的請求。即請求需 要通過某種計算。組件規(guī)范:組件指的是,符合某種規(guī)范的。并且可以部署在容器中的軟件模塊容器,是一個程序,用來提供組件的運行環(huán)境,并且,管理組件的生命周期,同時也必須符合某種規(guī)范。容器一般那要提供基礎服務(比如網絡通訊服務),而組件一般只要提供邏輯服務2。 "Servlet 的特點:1 ) .只能使用 java 語言來開發(fā)2 ) .不依賴于容器3 ).因為Servlet是一個java類,所
2、以,能做java類所做的事件,包括訪問 數據庫等4 。 "如何開發(fā)一個Servlet?step1 寫一個 java 類,實現一個接口 Servlet/繼承一個抽象類HttpServlet。step2 編譯step3 打包建立一個文件夾,比如appname,然后,在該文件夾下面建立如下的結構:appnameWEB-INFclasses(.clas岐件)lib(可選,.jar文件)web.xml(部署描述文件)step4 部署將 step3 中產生的文件夾或者是使用 jar 命令壓縮之后生成的 .war 文件拷貝到服務器特定的文件夾下面。step5 啟動服務器,訪問http:/ip:po
3、rt/appname/servlet-url5 。 tomcat6 ) 安裝將 tomcat 壓縮文件解壓到 /home/soft01 下。2)配置環(huán)境變量cd /home/soft01vi .bash_profile添加修改如下環(huán)境變量a,請求數據包JAVA_HOME:jdk 的主目錄CATALINA_HOME:tomcat 的主目錄PATH:tomcat 的主目錄 /binexport JAVA_HOME CATALINA_HOME PATH使環(huán)境變量生效. .bash_profile3)啟動服務器cd tomcat 的主目錄 /binsh startup.sh在瀏覽器地址欄輸入 http
4、:/localhost:804)關閉服務器sh shutdown.sh5.1 ) http 協(xié)議:hypertext transport protocal ,定義了瀏覽器與web 服務器之間數據傳輸的方式以及數據格式2)數據傳輸的方式a,瀏覽器向服務器發(fā)送建立連接的請求b ,瀏覽器依據http 協(xié)議,將請求數據打包,發(fā)送給web 服務器c, web 服務器處理請求,將處理結果依據http 協(xié)議打包,發(fā)送給瀏覽器d , web 服務器關閉連接3)數據格式請求行請求方式(get/post)請求資源的路徑協(xié)議的版本(1 ."0/1 ."1) 消息頭由 w3c 定義的一些通訊規(guī)則,
5、瀏覽器與服務器都會遵守。比如,服務器可以向瀏覽器發(fā)送contect-type 消息頭,告訴服務器返回的數據類型及編碼。實體內容如果使用 post 方式發(fā)請求,請求參數及值會存放到這里。如果是get 方式,則請求參數會放到請求資源路徑之后b,響應數據包狀態(tài)行協(xié)議版本狀態(tài)碼的描述消息頭由 w3c 定義的一些通訊規(guī)則,瀏覽器與服務器都會遵守。比如,服務器可以向瀏覽器發(fā)送contect-type 消息頭,告訴服務器返回的數據類型及編碼。實體內容服務器返回的結果(瀏覽器會取出這兒的數據,并且顯示出來).6.get/set 請求1 )哪些是 get 的請求a.在瀏覽器地址欄直接輸入一個地址b.表單默認提交
6、方式c.點擊連接get 方式的缺點:a. get請求會將請求參數添加到請求資源路徑的后面,所以, get方式不能 夠向服務器提交大量的數據b. get 請求會將請求參數直接顯示在瀏覽器地址欄,所以,不安全。2).哪一些是 post 請求a.form method="post"post 請求會將請求參數添加到實體內容里,所以,理論上,提交的數據是沒有限制的post 請求時,請求參數不會顯示在瀏覽器地址欄,相對安全(但是,并沒有對請求參數做任何的加密處理,如果要提交關鍵數據,需要加密處理)7,中文問題1 。 html 文件,添加<metahttp-equiv="
7、content-type"content="text/html;charset=utf-8">需要注意:charset 聲明的編碼一定要與實例保存該文件的編碼一致。當表單以 post 方式提交時,瀏覽器會對表單中的數據進行編碼(采用打開表單所在的頁面的編碼)2 .在Servlet類里面a.如果要讀取參數,應該使用 request.setCharacterEncoding("utf-8”煤作用是 設置request讀取請求參數時,解碼時所使用的編碼格式風格 b.如果要將中文輸 出到頁面 response.setContectType("te
8、xt/html;charset=utf-8");這句話有兩個作用:一 ,設置printWriter 之輸出數據時,所使用的編碼。二,生成一個消息頭告訴瀏覽器返回的是一個html ,并且,應該以utf-8 來顯示頁面。c.如果中文數據保存到數據庫,要保存數據庫支持中文,對于 jdbc驅動程 序,在 url 后面添加useUnicode=true&characterEncoding=utf-8;8.重定向1 . 什么是重定向 ?服務器向瀏覽器發(fā)送一個狀態(tài)碼302 及一個消息頭 location ,瀏覽器會立即向 location 所指定的地址發(fā)送新的請求。2 .編程respons
9、e.sendRedirect(String url);url 是要求瀏覽器跳轉的地址。servlet 有良好的生存期的定義,包括如何加載、實例化、初始化、處理客 戶端請求以及如何被移除。這個生存期由javax.servlet.Servlet接口的init,service和 destroy 方法表達1 、 " 加載和實例化容器負責加載和實例化一個servlet。實例化和加載可以發(fā)生在引擎啟動的 時候,也可以推遲到容器需要該servlet 為客戶請求服務的時候。首先容器必須先定位servlet類,在必要的情況下,容器使用通常的Java類加載工具加載該servlet,可能是從本機文件系統(tǒng),
10、也可以是從遠程文件系統(tǒng)甚 至其它的網絡服務。容器加載servlet類以后,它會實例化該類的一個實例。需 要注意的是可能會實例化?喔鰲道縹桓解ervlet類因為有不同的初始參數而有多個定義,或者servlet實現SingleThreadModel而導致容器為之生成一個實 例池。實例池滿足這一點。如果 servlet是分布式應用的一部分,那么,那么容 器可能在該應用分布的每個JVM中都維護一個實例池。如果開發(fā)者使用 synchronized關鍵字定義service方法(或者是doGet和doPost),容器將排隊處理 請求,這是由底層的java運行時系統(tǒng)要求的。我們強烈推薦開發(fā)者不要同步 serv
11、ice方法或者HTTPServle他勺諸如doGet和 doPost這樣的服務方法。3.2、”處理請求中的異常servlet在對請求進行服務的時候有可能拋出ServletException或者UnavailableException異常。ServletException表明在處理請求的過程中發(fā)生了錯 誤容器應該使用合適的方法清除該請求。UnavailableException表明servlet不能 對請求進行處理,可能是暫時的,也可能是永久的。如果 UnavailableException 指明是永久性的,那么容器必須將 servlet從服務中移除,調用它的destroy方 法并釋放它的實例。
12、如果指明是暫時的,那么容器可以選擇在異常信息里面指 明的這個暫時無法服務的時間段里面不向它發(fā)送任何請求。在這個時間段里面 被被拒絕的請求必須使用 SERVICE_UNAVAILABLE(503)返回狀態(tài)進行響應并且應該攜帶稍后重試(Retry-After)的響應頭表明 不能服務只是暫時的。容器也可以選擇不對暫時性和永久性的不可用進行區(qū)分 而全部當作永久性的并移除拋出異常的servleto3.3線程安全開發(fā)者應該注意容器實現的請求和響應對象(注:即容器實現的HttpServletRequest和HttpServletRespones8沒有被保證是線 程安全的,這就意味著他們只能在請求處理線程的范圍內被使用,這些對象不能被其它執(zhí)行線程所引用,因為引用的行為是不確定的。4、服務結束容器沒有被要求將一個加載的servlet保存多長時間,因此一個servlet實例可能只在容器中存活了幾毫秒,當然也可能是其它更長的任意時間(但是肯定會短于容器的生存期)當容器決定將之移除時(原因可能是保存內存資源或者自己被關閉),那么它必須允許servlet 釋放它正在使用的任何資源并保存任何永久狀態(tài)(這個過程通過調用 destroy 方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權抵押擔保協(xié)議書年
- 肥料農藥采購合同樣本
- 編程語言與軟件開發(fā)職業(yè)規(guī)劃作業(yè)指導書
- 2025年贛州b2貨運資格證多少道題
- 2025年桂林貨運從業(yè)資格證模擬考試駕考
- 2025年洛陽貨車從業(yè)資格證考什么
- 2025年博爾塔拉下載貨運從業(yè)資格證模擬考試題
- 2025年安徽貨運車輛從業(yè)資格證考試題
- 疾病篩查服務合同(2篇)
- 2024-2025學年高中物理第14章電磁波第3節(jié)電磁波的發(fā)射和接收課后練習含解析新人教版選修3-4
- 勾股定理(公開課)2
- 無違法犯罪記錄證明申請表(個人)
- 《藝術導論(第二版)》藝術鑒賞
- 身份證籍貫對照表(自動)
- 質量問題分析及措施報告
- 汽修廠安全風險分級管控清單
- 現代通信原理與技術(第五版)PPT全套完整教學課件
- 社區(qū)獲得性肺炎教學查房
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護技術要求
- 糖尿病運動指導課件
評論
0/150
提交評論