這篇文章將為大家詳細(xì)講解有關(guān)JavaWeb中Servlet組件如何使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比南山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式南山網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南山地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。
1. 實(shí)現(xiàn)Servlet的方式
主要有三種實(shí)現(xiàn)方式:1)實(shí)現(xiàn)javax.servlet.Servlet接口;2)繼承javax.servlet.GenericServlet類(lèi);3)繼承javax.servlet.http.HttpServlet類(lèi);其中最常用的繼承HttpServlet類(lèi)來(lái)實(shí)現(xiàn)。
2. 關(guān)于Servlet接口
public interface Servlet { public void init(ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; public String getServletInfo(); public void destroy();}
如上是Servlet接口的源碼,內(nèi)部主要有五個(gè)方法,其中與Servlet生命周期有關(guān)的方法有 init方法、service方法和destroy方法。
1) void init(ServletConfig);它會(huì)在Servlet對(duì)象創(chuàng)建之后馬上執(zhí)行,并且只執(zhí)行一次。
2) void service(ServletRequest,ServletResponse);它會(huì)被調(diào)用多次,每次處理請(qǐng)求都被調(diào)用。
3) void destroy();它會(huì)在Servlet被銷(xiāo)毀之前被Tomcat調(diào)用,并且只執(zhí)行一次。
3. Servlet的創(chuàng)建
服務(wù)器會(huì)在Servlet第一次被訪問(wèn)時(shí)創(chuàng)建Servlet,或者是在服務(wù)器啟動(dòng)時(shí)創(chuàng)建Servlet。如果服務(wù)器啟動(dòng)時(shí)就創(chuàng)建Servlet,那么還需要在web.xml文件中配置。如果 Servlet 的 load-on-startup 配置項(xiàng)大于 0,那么在 Context 容器啟動(dòng)的時(shí)候就會(huì)被實(shí)例化,也就是說(shuō)默認(rèn)情況下,Servlet是在第一次被訪問(wèn)時(shí)由服務(wù)器創(chuàng)建的。而且一個(gè)Servlet類(lèi)型,服務(wù)器只創(chuàng)建一個(gè)實(shí)例對(duì)象。
4. Servlet與線程安全
因?yàn)橐粋€(gè)類(lèi)型的Servlet只有一個(gè)實(shí)例對(duì)象,那么就有可能會(huì)現(xiàn)時(shí)出一個(gè)Servlet同時(shí)處理多個(gè)請(qǐng)求,那么Servlet是否為線程安全的呢?答案是:“不是線程安全的”。這說(shuō)明Servlet的工作效率很高,但也存在線程安全問(wèn)題!
所以我們不應(yīng)該在Servlet中隨便創(chuàng)建成員變量,因?yàn)榭赡軙?huì)存在一個(gè)線程對(duì)這個(gè)成員變量進(jìn)行寫(xiě)操作,另一個(gè)線程對(duì)這個(gè)成員變量進(jìn)行讀操作。
5. Servlet的使用
如果想要瀏覽器可以訪問(wèn)Servlet,需要給Servlet綁定一個(gè)路徑,這個(gè)需要在web.xml中進(jìn)行配置。其中<servlet> 指定HelloServlet這個(gè)Servlet的名稱(chēng)為hello;<servlet-mapping>:指定/helloworld訪問(wèn)路徑所以訪問(wèn)的Servlet名為hello。<servlet>和<servlet-mapping>通過(guò)<servlet-name>這個(gè)元素關(guān)聯(lián)在一起。
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.Demrystv.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/helloworld</url-pattern> </servlet-mapping>
6. 關(guān)于HttpServlet
HttpServlet類(lèi)是GenericServlet的子類(lèi),它提供了對(duì)HTTP請(qǐng)求的特殊支持,所以通常我們都會(huì)通過(guò)繼承HttpServlet來(lái)完成自定義的Servlet。
HttpServlet類(lèi)是一個(gè)抽象類(lèi),但是沒(méi)有抽象方法,必須繼承,實(shí)現(xiàn)doGet或者doPost,但是doGet()或doPost()方法不是抽象方法,默認(rèn)的實(shí)現(xiàn)是給客戶(hù)一個(gè)405。
關(guān)于JavaWeb中Servlet組件如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁(yè)題目:JavaWeb中Servlet組件如何使用
文章鏈接:http://www.rwnh.cn/article16/jeesdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、微信小程序、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)