内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

J2EE--Servlet生命周期與原理

Servlet是在服務(wù)器上運(yùn)行的小程序.而在java中應(yīng)用程序多是在容器中進(jìn)行生命周期的管理(這里指Tomact容器).

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、沈陽網(wǎng)站維護(hù)、網(wǎng)站推廣。Servlet基本的架構(gòu)圖

首先是

web頁面通過提交表單tomact獲取傳遞過來的數(shù)據(jù),進(jìn)行解析創(chuàng)建HttpSaervletRequest,該對(duì)象包含了客戶端信息,如表單數(shù)據(jù),客戶端的主機(jī)名稱和ip地址.創(chuàng)建HttpServletResponse對(duì)象,可以向?yàn)g覽器寫入數(shù)據(jù).

之后是調(diào)用Servelt,創(chuàng)建Servelet實(shí)例

創(chuàng)建servelet實(shí)例的過程中首先調(diào)用init方法,該方法只調(diào)用一次,響應(yīng)客戶請(qǐng)求階段。調(diào)用父類的service方法,在service中會(huì)根據(jù)Tomact傳遞過來的request對(duì)象分析是post還是get方法,所以servlet類必須有重寫doGet或doPost方法,并返回處理的結(jié)果。終止階段 調(diào)用destroy()方法

生命周期時(shí)序圖

tomact為何會(huì)根據(jù)url找到對(duì)應(yīng)的Servel文件呢,這還是需要我們的反射文件

web.XML文件的反射作用

1 tomact會(huì)根據(jù)url截取項(xiàng)目名稱

2根據(jù)url截取servlet的訪問名稱

3根據(jù)訪問名稱找到 servlet-name

4根據(jù)servel-name名稱就找到對(duì)應(yīng)的class文件

注意: tomact在創(chuàng)建serverl之前,已經(jīng)將客戶端傳遞的信息進(jìn)行了解析,并創(chuàng)建了HttpServeltRequest和HttpServletResponse對(duì)象,并將太對(duì)象傳遞給了servlet。

servelt的實(shí)例化過程了

根據(jù)web.xml文件裝載servelt類文件。并創(chuàng)建servelt實(shí)例

1調(diào)用srevelt的init()方法。

在Servlet的整個(gè)生命周期內(nèi),init()方法只被調(diào)用一次。

2調(diào)用service方法,匹配請(qǐng)求的方式,選擇呢調(diào)用doGet,doPost方法。

Servelt工作原理:

首先簡單解釋一下Servlet接收和響應(yīng)客戶請(qǐng)求的過程,首先客戶發(fā)送一個(gè)請(qǐng)求,Servlet是調(diào)用service()方法對(duì)請(qǐng)求進(jìn)行響應(yīng)的,通過源代碼可見,service()方法中對(duì)請(qǐng)求的方式進(jìn)行了匹配,選擇調(diào)用doGet,doPost等這些方法,然后再進(jìn)入對(duì)應(yīng)的方法中調(diào)用邏輯層的方法,實(shí)現(xiàn)對(duì)客戶的響應(yīng)。在Servlet接口和GenericServlet中是沒有doGet,doPost等等這些方法的,HttpServlet中定義了這些方法,但是都是返回error信息,所以,我們每次定義一個(gè)Servlet的時(shí)候,都必須實(shí)現(xiàn)doGet或doPost等這些方法。

每一個(gè)自定義的Servlet都必須實(shí)現(xiàn)Servlet的接口,Servlet接口中定義了五個(gè)方法,其中比較重要的三個(gè)方法涉及到Servlet的生命周期,分別是上文提到的init(),service(),destroy()方法。GenericServlet是一個(gè)通用的,不特定于任何協(xié)議的Servlet,它實(shí)現(xiàn)了Servlet接口。而HttpServlet繼承于GenericServlet,因此HttpServlet也實(shí)現(xiàn)了Servlet接口。所以我們定義Servlet的時(shí)候只需要繼承HttpServlet即可。

Servlet接口和GenericServlet是不特定于任何協(xié)議的,而HttpServlet是特定于HTTP協(xié)議的類,所以HttpServlet中實(shí)現(xiàn)了service()方法,并將請(qǐng)求ServletRequest,ServletResponse強(qiáng)轉(zhuǎn)為HttpRequest和HttpResponse。

Servlet終止階段:

當(dāng)WEB應(yīng)用被終止,或Servlet容器終止運(yùn)行,或Servlet容器重新裝載Servlet新實(shí)例時(shí),Servlet容器會(huì)先調(diào)用Servlet的destroy()方法,在destroy()方法中可以釋放掉Servlet所占用的資源。

測試的例子.測試時(shí)序圖

importjava.io.IOException; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; public class testextends HttpServlet { //默認(rèn)構(gòu)造 publictest(){ System.out.println("---構(gòu)造函數(shù)-------"+"n"); } publicvoid doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException,IOException { System.out.print("----doget------"+"n"); } public void init() throws ServletException{ System.out.print("----Init------"+"n"); } }

通過調(diào)用該srevel類,發(fā)現(xiàn)調(diào)用的時(shí)序?yàn)?/p>

首先創(chuàng)造該類的構(gòu)造方法,然后初始化該類,最后是根據(jù)service方法調(diào)用doget方法,調(diào)用該類只實(shí)例化一次。

總結(jié):

通過以前的認(rèn)識(shí)和現(xiàn)在的總結(jié)。了解到servelt對(duì)于處理業(yè)務(wù)邏輯有很大的作用,但是對(duì)于輸出處理html的樣式文件卻是一個(gè)很大的問題。servelt的生命周期的創(chuàng)建和以前學(xué)習(xí)aspn.net控件的創(chuàng)建,生命周期大相近庭,不同環(huán)節(jié)在于先調(diào)用了父類的srvcie方法。分析發(fā)現(xiàn)servel對(duì)多線程的處理,靠的不是自身,而是通過容器進(jìn)行管理的。所以servlet對(duì)于線程的安全不是很好。

網(wǎng)站名稱:J2EE--Servlet生命周期與原理
文章網(wǎng)址:http://m.rwnh.cn/article8/cgicop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站電子商務(wù)、搜索引擎優(yōu)化、定制開發(fā)、網(wǎng)站制作全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
即墨市| 涡阳县| 锡林浩特市| 昌宁县| 若羌县| 莎车县| 桂林市| 年辖:市辖区| 八宿县| 梁平县| 瑞安市| 五莲县| 汉阴县| 万州区| 新郑市| 和顺县| 潍坊市| 巴青县| 辉南县| 大同市| 莱西市| 靖安县| 闸北区| 江城| 德保县| 四会市| 腾冲县| 迁西县| 仁寿县| 周宁县| 津南区| 利辛县| 通州区| 弋阳县| 富锦市| 佛学| 常宁市| 蒙阴县| 四会市| 庆云县| 盐池县|