欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

myeclipse開發(fā)servlet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年07月26日 10:50:01   作者:fjdingsd  
MyEclipse,是在eclipse基礎(chǔ)上加上自己的插件開發(fā)而成的功能強(qiáng)大的企業(yè)級(jí)集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動(dòng)應(yīng)用的開發(fā)。下面這篇文章主要給大家介紹了關(guān)于myeclipse開發(fā)servlet的相關(guān)資料,需要的朋友可以參考下。

  在web.xml中可以對(duì)同一個(gè)Servlet配置多個(gè)對(duì)外訪問(wèn)路徑,并如果在web.xml中配置的信息服務(wù)器會(huì)自動(dòng)加載部署,而如果是在Servlet中進(jìn)行程序代碼的修改,則每次都要重新部署。

  首先,在使用MyEclipse創(chuàng)建Servlet后,會(huì)根據(jù)所創(chuàng)建的Servlet進(jìn)行到web.xml文件的映射,如下圖所示:

  

經(jīng)過(guò)這個(gè)映射之后,在web.xml文件中就自動(dòng)生成了這個(gè)Servlet的配置信息:

  

  當(dāng)然,我們可以在web.xml文件中把這個(gè)Servlet繼續(xù)添加一條對(duì)外訪問(wèn)路徑,使得這個(gè)Servlet可以從不同路徑進(jìn)行訪問(wèn),現(xiàn)在我們?cè)诜?wù)器開啟的情況下,為這個(gè)Servlet添加一個(gè)新的對(duì)外訪問(wèn)路徑好了:

  

紅框部分是新添加的,這時(shí)候服務(wù)器在Console窗口會(huì)自動(dòng)提示已經(jīng)重新部署,是的,只要在web.xml中修改的都無(wú)需關(guān)閉服務(wù)器就可以被服務(wù)器重新更新加載部署:

  

那么我們?cè)囋囆碌脑L問(wèn)地址:

  

可以訪問(wèn)??!

  細(xì)節(jié)二:在web.xml中為Servlet配置對(duì)外訪問(wèn)路徑的<url-pattern>可以使用“*”作為通配符,但是這種只能有兩種格式:

  一種格式是整個(gè)內(nèi)容只能有“*.擴(kuò)展名” ,如<url-pattern>*.html<url-pattern>,而如果寫成這樣<url-pattern>abc/*.html<url-pattern>就是錯(cuò)誤的。尤其是<url-pattern>/*.html<url-pattern>也是錯(cuò)誤的,不能有“/”,一定要注意。例:

  

在瀏覽器可以在通配符位置隨便輸入:

  

這樣造成了一種偽靜態(tài)的現(xiàn)象,我們以為是訪問(wèn)一個(gè)靜態(tài)的頁(yè)面,其實(shí)卻是一個(gè)動(dòng)態(tài)web資源。

  另一種格式是以正斜線“/”開頭,加自定義路徑,以“/*”結(jié)尾,如<url-pattern>/abc/*<url-pattern>。這時(shí)候連擴(kuò)展名都任意了。例:

  

在瀏覽器的地址欄內(nèi)可以在通配符位置隨便輸入,擴(kuò)展名都不需要:

  

  

  細(xì)節(jié)三:由細(xì)節(jié)二導(dǎo)出的多個(gè)Servlet資源的映射路徑如果使用了通配符,就可能發(fā)生沖突,那么這時(shí)候服務(wù)器將會(huì)以哪個(gè)Servlet資源作為響應(yīng)呢?我們看一下下面的問(wèn)題,就能明白了:

  

  細(xì)節(jié)四: 在Servlet的整個(gè)生命周期內(nèi),Servlet的init()方法只會(huì)被調(diào)用一次。而對(duì)于Servlet的每次訪問(wèn)請(qǐng)求,Servlet都會(huì)調(diào)用service()方法一次。并對(duì)于每次的請(qǐng)求訪問(wèn),Servlet都會(huì)創(chuàng)建一個(gè)新的HttpServletRequest請(qǐng)求對(duì)象和新的HttpServletResponse響應(yīng)對(duì)象。當(dāng)然在每次請(qǐng)求訪問(wèn)完成之后,這些請(qǐng)求對(duì)象和響應(yīng)對(duì)象會(huì)立馬被銷毀,等待下次請(qǐng)求再重新創(chuàng)建,這樣就能給服務(wù)器減小壓力(非并發(fā)情況下)。

  細(xì)節(jié)五:之前談到的Servlet在服務(wù)器部署后,都是只在第一次對(duì)該Servlet訪問(wèn)時(shí)才由服務(wù)器創(chuàng)建Servlet的實(shí)例對(duì)象,而如果在web.xml中在某個(gè)<servlet>標(biāo)簽下配置<load-on-startup>標(biāo)簽,則該Servlet會(huì)在服務(wù)器啟動(dòng)后就創(chuàng)建實(shí)例對(duì)象,并執(zhí)行Servlet的初始化init()方法。<load-on-startup>的內(nèi)容為一個(gè)正整數(shù)值。該值越小,代表在服務(wù)器啟動(dòng)后優(yōu)先創(chuàng)建Servlet對(duì)象并執(zhí)行初始化方法。

  細(xì)節(jié)六:如果某個(gè)Servlet的映射路徑僅僅為一個(gè)正斜線“/”,那么這個(gè)Servlet就稱為當(dāng)前web應(yīng)用的默認(rèn)Servlet。凡是在web.xml文件中找不到匹配的<servlet-mapping>標(biāo)簽的URL,它們的訪問(wèn)請(qǐng)求都是交個(gè)默認(rèn)Servlet來(lái)處理,也就是說(shuō)默認(rèn)Servlet用于處理所有其他Servlet都不處理的訪問(wèn)請(qǐng)求。

  例如我現(xiàn)在創(chuàng)建兩個(gè)Servlet,其中一個(gè)有自定義的對(duì)外映射路徑,而另一個(gè)設(shè)置成了默認(rèn)Servlet:

  

要想訪問(wèn)SecondServlet就必須按照其對(duì)應(yīng)的路徑在瀏覽器地址欄中鍵入:

  

而對(duì)于默認(rèn)Servlet,則是在web應(yīng)用名后隨便輸:

  

(如果不輸則會(huì)顯示的是已有的首頁(yè)index.jsp,為什么呢,請(qǐng)看下面細(xì)節(jié)六)

  細(xì)節(jié)六(重要) :如果我們?cè)谧约洪_發(fā)的Servlet中沒(méi)有配置默認(rèn)Servlet,而是直接訪問(wèn)我們web工程下的一個(gè)靜態(tài)web資源的話(如果有),那么我們將能從瀏覽器中看到這個(gè)web資源,記?。赫?qǐng)求任何web資源都是以某個(gè)Servlet來(lái)響應(yīng)回傳數(shù)據(jù)的,那么既然我們沒(méi)有配置默認(rèn)Servlet的話,為什么能訪問(wèn)到這個(gè)資源呢?換句話說(shuō),是哪個(gè)Servlet將我們需要的資源響應(yīng)給我們看的?答案就是Tomcat服務(wù)器的默認(rèn)Servlet?。?!Tomcat服務(wù)器的默認(rèn)Servlet在Tomcat的【conf】目錄下的web.xml文件中設(shè)置了映射路徑:

  

  從Tomcat的web.xml文件中可以看出,其默認(rèn)Servlet在服務(wù)器啟動(dòng)就創(chuàng)建實(shí)例對(duì)象,并且是最早創(chuàng)建的,對(duì)外路徑已經(jīng)設(shè)置了默認(rèn)格式。而這個(gè)默認(rèn)Servlet會(huì)管理每個(gè)自定義創(chuàng)建的Servlet工程,如果我們沒(méi)有在自己的web工程中創(chuàng)建默認(rèn)Servlet,那么要訪問(wèn)自己web工程中的某個(gè)資源時(shí),Tomcat的默認(rèn)Servlet會(huì)幫我們將該資源封裝成響應(yīng)對(duì)象傳回客戶端。

  例如,我在我的web工程下創(chuàng)建一個(gè)1.html頁(yè)面:

  

而我去瀏覽器訪問(wèn)這個(gè)頁(yè)面:

   

  對(duì)于這個(gè)URL,Tomcat服務(wù)器首先去配對(duì)我的Servlet是否有對(duì)應(yīng)的映射路徑,如果沒(méi)有,并且如果我沒(méi)有在自己的web工程中設(shè)置默認(rèn)Servlet,那么Tomcat的默認(rèn)Servlet就在我的web應(yīng)用下搜尋HTTP請(qǐng)求的資源,找到并封裝成響應(yīng)對(duì)象返回給客戶端。如果Tomcat的默認(rèn)Servlet找不著所需的資源,那它依然會(huì)響應(yīng)客戶端,只是客戶端看到的是一些提示找不著該資源,如404提示。另外,根據(jù)這個(gè)過(guò)程,我們?cè)陂_發(fā)自己的Servlet時(shí),建議不要將自己的某個(gè)Servlet映射成默認(rèn)Servlet為好。

  接下來(lái),討論一個(gè)首頁(yè)的問(wèn)題。除了我們?cè)L問(wèn)web應(yīng)用中某個(gè)特定資源(在瀏覽器地址上最后鍵入一個(gè)文件名),還會(huì)是在鍵入web應(yīng)用名之后就發(fā)送HTTP請(qǐng)求了,這時(shí)候我們看到的也是一個(gè)頁(yè)面,通常稱為“首頁(yè)”,而這個(gè)首頁(yè),也是由默認(rèn)Servlet來(lái)響應(yīng)的。

  例如我使用MyEclipse創(chuàng)建一個(gè)web應(yīng)用時(shí)就會(huì)默認(rèn)幫我創(chuàng)建一個(gè)“index.jsp”文件:

  

而我在該web應(yīng)用中沒(méi)有創(chuàng)建任何Servlet,或者即使創(chuàng)建Servlet也映射到某個(gè)特定的對(duì)外URL上,那么我在瀏覽器輸入主機(jī)地址+web應(yīng)用名依然能看到這個(gè)index.jsp:

  

由前面所說(shuō),這個(gè)頁(yè)面肯定是由Tomcat服務(wù)器的默認(rèn)Servlet傳回給客戶端的,那么Tomcat服務(wù)器為什么是傳回這個(gè)資源呢,而不是別的資源呢?答案還是在web.xml文件中,還記得之前《Tomcat詳細(xì)用法學(xué)習(xí)(三)》中定義的首頁(yè)設(shè)置嗎,對(duì),就是這個(gè)方法,這個(gè)方法由默認(rèn)Servlet來(lái)管理,我們?cè)賮?lái)回顧下在Tomcat的web.xml文件中的<welcome-file-list>標(biāo)簽:

  

  如果瀏覽器的輸入地址只輸入了web應(yīng)用名,那么Tomcat的默認(rèn)Servlet傳送這個(gè)web應(yīng)用下的index.html文件,否則傳送index.htm文件,再否則傳送index.jsp,如果三個(gè)都沒(méi)有那么只能返回404了。

  如果我把這段代碼注釋掉或刪掉,再想直接訪問(wèn)web應(yīng)用名就跟我把index.jsp文件刪除一樣,Tomcat的默認(rèn)Servlet找不到資源,返回404提示(在MyEclipse中需要重啟服務(wù)器):

  

  

所以如果我們想為自己的web應(yīng)用弄出個(gè)漂亮首頁(yè),只需要在index.jsp中開發(fā)就行了,或者另外創(chuàng)建一個(gè)index.html文件開發(fā),這個(gè)文件會(huì)比index.jsp更優(yōu)先被訪問(wèn)。

  細(xì)節(jié)七:因?yàn)槲覀兊拈_發(fā)Servlet都要繼承Servlet接口的某個(gè)實(shí)現(xiàn)類,那么我們?cè)诰帉慸oGet方法或者doPost方法的時(shí)候很可能調(diào)用了某些會(huì)拋出異常的方法,那么我們對(duì)這些異常只能捕獲處理,而不能拋出,這是因?yàn)樽宇愒诟采w父類的方法時(shí),不能拋出比父類更多的異常。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Spring高級(jí)接口Aware淺析

    Spring高級(jí)接口Aware淺析

    通過(guò)aware接口可以獲取Spring容器相關(guān)信息,但這樣會(huì)與Spring容器耦合,這篇文章主要介紹了Spring aware接口理解,需要的朋友可以參考下
    2023-01-01
  • Spring Boot集成Swagger2項(xiàng)目實(shí)戰(zhàn)

    Spring Boot集成Swagger2項(xiàng)目實(shí)戰(zhàn)

    在日常的工作中,我們往往需要給前端(WEB端、IOS、Android)或者第三方提供接口,這個(gè)時(shí)候我們就需要給他們提供一份詳細(xì)的API說(shuō)明文檔。這篇文章我們就來(lái)分享一種API文檔維護(hù)的方式,即通過(guò)Swagger來(lái)自動(dòng)生成Restuful API文檔
    2018-01-01
  • 基于javaweb+jsp的游泳館會(huì)員管理系統(tǒng)(附源碼)

    基于javaweb+jsp的游泳館會(huì)員管理系統(tǒng)(附源碼)

    這篇文章主要介紹了基于javaweb+jsp的游泳館會(huì)員管理系統(tǒng),開發(fā)工具eclipse/idea/myeclipse/sts等均可配置運(yùn)行,此源代碼社和課程設(shè)計(jì),大作業(yè)及畢業(yè)設(shè)計(jì)項(xiàng)目,需要的朋友可以參考下
    2022-04-04
  • Spring整合redis的操作代碼

    Spring整合redis的操作代碼

    這篇文章主要介紹了Spring整合redis的操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java經(jīng)典面試題匯總:Spring MVC

    Java經(jīng)典面試題匯總:Spring MVC

    本篇總結(jié)的是Spring MVC框架相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • java解析任意層數(shù)json字符串的方法

    java解析任意層數(shù)json字符串的方法

    一個(gè)方法解析任意層數(shù)的json字符竄:使用正則表達(dá)式,遞歸算法,將jsonArray解析出后添加到List, JsonObject添加至Map
    2014-02-02
  • java連連看游戲菜單設(shè)計(jì)

    java連連看游戲菜單設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了java連連看游戲菜單部分的設(shè)計(jì)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • java編程中字節(jié)流轉(zhuǎn)換成字符流的實(shí)現(xiàn)方法

    java編程中字節(jié)流轉(zhuǎn)換成字符流的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇java編程中字節(jié)流轉(zhuǎn)換成字符流的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • springboot實(shí)現(xiàn)注冊(cè)加密與登錄解密功能(demo)

    springboot實(shí)現(xiàn)注冊(cè)加密與登錄解密功能(demo)

    這篇文章主要介紹了springboot實(shí)現(xiàn)注冊(cè)的加密與登錄的解密功能,本文通過(guò)demo實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn)

    java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn)

    在前后端分離的開發(fā)中,經(jīng)常會(huì)遇到需要從后端返回圖片流給前端的情況,下面這篇文章主要給大家介紹了關(guān)于java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn),需要的朋友可以參考下
    2024-02-02

最新評(píng)論