當(dāng)前位置首頁(yè) > 計(jì)算機(jī) > 服務(wù)器及存儲(chǔ)技術(shù)
搜柄,搜必應(yīng)! 快速導(dǎo)航 | 使用教程

搭建簡(jiǎn)單的Web服務(wù)器

文檔格式:PPT| 42 頁(yè)|大小 330KB|積分 9.9|2024-12-09 發(fā)布|文檔ID:253237944
第1頁(yè)
第2頁(yè)
第3頁(yè)
下載文檔到電腦,查找使用更方便 還剩頁(yè)未讀,繼續(xù)閱讀>>
1 / 42
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預(yù)覽
  • 常見(jiàn)問(wèn)題
  • Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,搭建一個(gè)簡(jiǎn)單的服務(wù)器,貝毅君,浙江大學(xué)軟件學(xué)院,主要內(nèi)容,Tomcat,總體結(jié)構(gòu),HTTP,請(qǐng)求與響應(yīng),Socket,與,ServerSocket,搭建簡(jiǎn)單的,web,服務(wù)器,Tomcat,是一個(gè)基于組件的服務(wù)器,它的構(gòu)成組件都是可配置的,其中最外層的組件是,Catalina Servlet,容器,其他的組件按照一定的格式要求配置在這個(gè)頂層容器中。

    Tomcat,簡(jiǎn)介,Tomcat,簡(jiǎn)介,/bin,:存放,windows,或,Linux,平臺(tái)上啟動(dòng)和關(guān)閉,Tomcat,的腳本文件,/conf,:存放,Tomcat,服務(wù)器的各種全局配置文件,其中最重要的是,server.xml,和,web.xml,/doc,:存放,Tomcat,文檔,/server,:包含三個(gè)子目錄:,classes,、,lib,和,webapps,/server/lib,:存放,Tomcat,服務(wù)器所需的各種,JAR,文件,Tomca,t,簡(jiǎn)介,-,目錄結(jié)構(gòu),/server/webapps,:存放,Tomcat,自帶的兩個(gè),WEB,應(yīng)用,admin,應(yīng)用和,manager,應(yīng)用,/common/lib,:存放,Tomcat,服務(wù)器以及所有,web,應(yīng)用都可以訪問(wèn)的,jar,文件,/shared/lib,:存放所有,web,應(yīng)用都可以訪問(wèn)的,jar,文件(但是不能被,Tomcat,服務(wù)器訪問(wèn)),/logs,:存放,Tomcat,執(zhí)行時(shí)的日志文件,Tomcat,簡(jiǎn)介,-,目錄結(jié)構(gòu),/src,:存放,Tomcat,的源代碼,/work,:存放,JSP,產(chǎn)生的,servlet,文件,/webapps,:,Tomcat,的主要,Web,發(fā)布目錄,默認(rèn)情況下把,Web,應(yīng)用文件放于此目錄,/helloapp,:,Web,應(yīng)用的根目錄,所有的,jsp,文件和,html,文件都在此目錄下,/helloapp/WEB_INF,:存放該,web,應(yīng)用發(fā)布時(shí)的描述文件,web.xml,/helloapp/WEB_INF/class,:存放各種,class,文件,,Servlet,文件也存放于此目錄下,/helloapp/WEB_INF/lib,:存放各鐘,Web,應(yīng)用所需要的,jar,文件。

    比如可以存放,JDBC,驅(qū)動(dòng)程序的,JAR,文件,Tomcat,簡(jiǎn)介,-,目錄結(jié)構(gòu),以,helloapp,應(yīng)用為例,helloapp,(,/webapps/helloapp/Web-INF/,下的,classes,,,lib,子目錄中*,.calss,及*,.jar,,僅,helloapp,可以加載),Bootstrap,(,$JAVA_HOME/jre/lib/ext/*.jar,),System,(,$CLASSPATH/*.class,和,CLASSPATH,中指定的,jar,),Tomcat,簡(jiǎn)介,加載資源順序,Common,(,$CATALINA_HOME/common/,下的,classes,,,lib,,,endores,子目錄中*,.class,及*,.jar,),Catalina,(,$CATALINA_HOME/server/,下的,classes,,,lib,子目錄中*,.calss,及*,.jar,,僅,Tomcat,可以加載),Shared,(,$CATALINA_HOME/shared/,下的,classes,,,lib,子目錄中*,.calss,及*,.jar,,僅所有,Web,應(yīng)用可以加載),Tomcat,簡(jiǎn)介,加載資源順序,Tomcat,總體結(jié)構(gòu),Tomcat,的各個(gè)組件是在,conf server.xml,文件中配置的,下面通過(guò)分析,server.xml,文件來(lái)理解,Tomcat,的各個(gè)組件是如何組織的。

    Tomcat,總體結(jié)構(gòu),Tomcat,簡(jiǎn)介,Server,組件對(duì)應(yīng),元素,它是配置文件的最頂層元素,代表一個(gè)服務(wù)器一個(gè)配置文件中只能有一個(gè),元素Service,組件是一些,Connector,組件的集合,它本身不是一個(gè)容器一個(gè),Service,組件中只能有一個(gè),Engine,組件,可以包含多個(gè),Connector,組件Connector,組件表示一個(gè)接口,通過(guò)這個(gè)接口接收客戶的請(qǐng)求,然戶發(fā)送給其他的容器組件,最后再把服務(wù)器的響應(yīng)結(jié)果傳遞給客戶容器類元素:為特定的虛擬主機(jī)處理所有客戶請(qǐng)求,可包含多個(gè),Context,容器類元素:為特定的,Service,組件處理所有客戶請(qǐng)求,可包含多個(gè),Host,容器類元素:為特定的,Web,應(yīng)用處理所有客戶請(qǐng)求,Tomcat,總體結(jié)構(gòu),Server:,一個(gè),Server,代表整個(gè),Catalina Servlet,容器Service,:,由多個(gè),Connector,組成,以及一個(gè),Engine,,處理所有,Connector,所獲得的客戶請(qǐng)求Tomcat,總體結(jié)構(gòu),基本組件,Connector:,一個(gè),Connector,將在某個(gè)指定端口上偵聽(tīng)客戶請(qǐng)求,并將獲得的請(qǐng)求交給,Engine,來(lái)處理,從,Engine,處獲得回應(yīng)并返回客戶。

    TOMCAT,有兩個(gè)典型的,Connector,Coyote Http/1.1 Connector,在端口,8080,處偵聽(tīng)來(lái)自客戶,browser,的,http,請(qǐng)求,Coyote JK2 Connector,在端口,8009,處偵聽(tīng)來(lái)自其它,WebServer(Apache),的,servlet/jsp,代理請(qǐng)求,Tomcat,總體結(jié)構(gòu),基本組件,Engine:E,ngine,下可以配置多個(gè)虛擬主機(jī),Virtual Host,,每個(gè)虛擬主機(jī)都有一個(gè)域名當(dāng),Engine,獲得一個(gè)請(qǐng)求時(shí),它把該請(qǐng)求匹配到某個(gè),Host,上,然后把該請(qǐng)求交給該,Host,來(lái)處理,Engine,有一個(gè)默認(rèn)虛擬主機(jī),當(dāng)請(qǐng)求無(wú)法匹配到任何一個(gè),Host,上的時(shí)候,將交給該默認(rèn),Host,來(lái)處理Tomcat,總體結(jié)構(gòu),基本組件,Host,:代表一個(gè),Virtual Host,,虛擬主機(jī),每個(gè)虛擬主機(jī)和某個(gè)網(wǎng)絡(luò)域名,Domain Name,相匹配每個(gè)虛擬主機(jī)下都可以部署,(deploy),一個(gè)或者多個(gè),Web App,,每個(gè),Web App,對(duì)應(yīng)于一個(gè),Context,,有一個(gè),Context path,當(dāng),Host,獲得一個(gè)請(qǐng)求時(shí),將把該請(qǐng)求匹配到某個(gè),Context,上,然后把該請(qǐng)求交給該,Context,來(lái)處理匹配的方法是“最長(zhǎng)匹配”,所以一,path=,的,Context,將成為該,Host,的默認(rèn),Context,所有無(wú)法和其它,Context,的路徑名匹配的請(qǐng)求都將最終和該默認(rèn),Context,匹配,Tomcat,總體結(jié)構(gòu),基本組件,Context:,一個(gè),Context,對(duì)應(yīng)于一個(gè),Web Application,,一個(gè),Web Application,由一個(gè)或者多個(gè),Servlet,組成。

    Context,在創(chuàng)建的時(shí)候?qū)⒏鶕?jù)配置文件,$CATALINA_HOME/conf/web.xml,和,$WEBAPP_HOME/WEB-INF/web.xml,載入,Servlet,類當(dāng),Context,獲得請(qǐng)求時(shí),將在自己的映射表,(mapping table),中尋找相匹配的,Servlet,類如果找到,則執(zhí)行該類,獲得請(qǐng)求的回應(yīng),并返回Tomcat,總體結(jié)構(gòu),基本組件,假設(shè)來(lái)自客戶的請(qǐng)求為:,http:/localhost:8080/wsota/wsota_index.jsp,請(qǐng)求被發(fā)送到本機(jī)端口,8080,,被在那里偵聽(tīng)的,Coyote HTTP/1.1 Connector,獲得,Connector,把該請(qǐng)求交給它所在的,Service,的,Engine,來(lái)處理,并等待來(lái)自,Engine,的回應(yīng),Engine,獲得請(qǐng)求,localhost/wsota/wsota_index.jsp,,匹配它所擁有的所有虛擬主機(jī),Host,Tomcat,處理,Http,請(qǐng)求過(guò)程,Engine,匹配到名為,localhost,的,Host,(即使匹配不到也把請(qǐng)求交給該,Host,處理,因?yàn)樵?Host,被定義為該,Engine,的默認(rèn)主機(jī)),localhost Host,獲得請(qǐng)求,/wsota/wsota_index.jsp,,匹配它所擁有的所有,Context,Host,匹配到路徑為,/wsota,的,Context,(如果匹配不到就把該請(qǐng)求交給路徑名為,的,Context,去處理),Tomcat,處理一個(gè),Http,請(qǐng)求過(guò)程,path=/wsota,的,Context,獲得請(qǐng)求,/wsota_index.jsp,,在它的,mapping table,中尋找對(duì)應(yīng)的,servlet,Context,匹配到,URL PATTERN,為*,.jsp,的,servlet,,對(duì)應(yīng)于,JspServlet,類,構(gòu)造,HttpServletRequest,對(duì)象和,HttpServletResponse,對(duì)象,作為參數(shù)調(diào)用,JspServlet,的,doGet,或,doPost,方法,Tomcat,處理一個(gè),Http,請(qǐng)求過(guò)程,Context,把執(zhí)行完了之后的,HttpServletResponse,對(duì)象返回給,Host,Host,把,HttpServletResponse,對(duì)象返回給,Engine,Engine,把,HttpServletResponse,對(duì)象返回給,Connector,Connector,把,HttpServletResponse,對(duì)象返回給客戶,browser,Tomcat,處理一個(gè),Http,請(qǐng)求過(guò)程,Servlet,容器是一個(gè)復(fù)雜的系統(tǒng),對(duì)每個(gè)請(qǐng)求,,servlet,容器會(huì)為其完成以下,3,個(gè)操作:,創(chuàng)建一個(gè),request,對(duì)象,用可能會(huì)調(diào)用的,Servlet,中使用的信息填充該,request,對(duì)象,如參數(shù)、頭、,cookie,、查詢字符串、,URI,等。

    創(chuàng)建一個(gè)調(diào)用,Servlet,的,response,對(duì)象,用來(lái)向,Web,客戶端發(fā)送響應(yīng)調(diào)用,Servlet,的,service(),方法,將,request,對(duì)象和,response,對(duì)象作為參數(shù)傳入Servlet,從,requset,對(duì)象中讀取信息,并通過(guò),response,對(duì)象發(fā)送響應(yīng)信息Tomcat,總體結(jié)構(gòu),servlet,容器是如何工作的,Tomcat,總體結(jié)構(gòu),Catalina,Catalina,是一個(gè)設(shè)計(jì)和開(kāi)發(fā)得十分優(yōu)美,功能結(jié)構(gòu)也模塊化的成熟軟件Catalina,是,Tomcat,的核心結(jié)構(gòu)連接器負(fù)責(zé)。

    點(diǎn)擊閱讀更多內(nèi)容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無(wú)煙日關(guān)注青少年成長(zhǎng)健康無(wú)煙為成長(zhǎng)護(hù)航.pptx
    五四青年節(jié)詩(shī)詞贊歌五四青年自強(qiáng)不息.pptx
    XX學(xué)校班主任培訓(xùn)用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠(yuǎn)離亞健康.pptx
    兒童成長(zhǎng)手冊(cè)時(shí)光里的童真印記.pptx
    幼兒園夏季傳染病預(yù)防指南預(yù)見(jiàn)夏天健康童行夏季傳染病預(yù)防科普.pptx
    高中生心理健康教育主題班會(huì)快樂(lè)學(xué)習(xí)高效學(xué)習(xí)正視壓力學(xué)會(huì)減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓(xùn)遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護(hù)職防同行.pptx
    XX幼兒園防災(zāi)減災(zāi)安全教育臨災(zāi)不亂安全童行學(xué)會(huì)保護(hù)自己.pptx
    在2025年縣教育工作大會(huì)暨高考備考工作推進(jìn)會(huì)上的講話發(fā)言材料.docx
    在2025年縣全面從嚴(yán)治黨和黨風(fēng)廉政會(huì)議上的講話發(fā)言材料.docx
    在2025年全市慶?!拔逡弧濒邉趧?dòng)模范表彰大會(huì)上的講話發(fā)言材料多篇.docx
    2025年稅務(wù)局青年代表在五四青年座談會(huì)上的發(fā)言材料3篇.docx
    在2025年市委全體會(huì)議上的主持講話發(fā)言材料.docx
    2025年黨風(fēng)廉政建設(shè)工作要點(diǎn)材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會(huì)上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓(xùn)班上的講話發(fā)言材料.docx
    縣文旅局黨組書(shū)記在五一假期及夏季旅游安全生產(chǎn)工作部署會(huì)議上的講話發(fā)言材料.docx
    賣(mài)家[上傳人]:wuyouli1995
    資質(zhì):實(shí)名認(rèn)證