1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          servlet工作原理(Servlet的定義及運行原理是什么)

          來源:互聯網轉載 時間:2024-05-01 08:45:02

          1.什么是servlet?

          sun(oracle)公司制訂的一種用來擴展web服務器端功能的組件規范。

          背景:

          常用的web服務器:

          • apache http Server

          • nginx:俄羅斯小伙子寫的

          • IIS

          以上服務器只能處理靜態的資源請求。網頁要提前寫好,不能動態生成。

          web服務器需要處理動態的資源請求。頁面并不是提前寫好,需要計算。我們的web服務器不能做到這一點,所以需要擴展。

          1.1 擴展web服務器端功能

          web服務器端(比如apache http webServer,nginx,iis等)只能夠處理靜態資源的請求,不能夠處理動態資源的請求。所以需要擴展web服務器的功能來處理動態資源的請求。

          注:靜態資源,指的是需要事先將網頁寫好。動態資源:指的是需要經過計算,動態生成相應的網頁。

          注:servelet出現之前,如何處理這些動態的請求呢?早期使用CGI(Common GateWay Interface-通用網關接口)程序來擴展。CGI程序開發復雜,移植性差,很少用了

          1.2 servlet組件

          符合相應的規范,具有部分功能的,并且需要部署到相應的容器里面才能運行的軟件模塊。比如servlet就是一個組件,需要符合servlet規范,并且需要部署到servlet容器里面才能運行。

          注:容器:符合相應的規范,提供組件運行環境的程序。比如Tomcat就是比較有名的servlet容器。jetty jboss weblogic都是servlet容器。這些servlet把網絡相關的問題已經全部處理好,我們寫servlet只需要關注業務邏輯即可。

          2.如何寫一個servlet?

          寫一個java類,需要實現Servlet接口或者繼承HttpServlet類。編譯。打包(將這個java類變成servlet組件)

          注:創建一個具有如下結構的文件夾:

          appname(文件夾名字,可以自定義) WEB-INF(appname下面的子文件夾,是固定的) classes(該文件夾放之前寫好的java類的字節碼文件)lib(里面放的是一些需要用到的jar包)web.xml(用來描述servlet)

          部署:將第三部創建好的文件夾拷貝到servlet容器指定的文件夾下面。(注:可以將第三步創建好的文件夾先使用jar命令壓縮成以".war"結尾的文件,然后再拷貝。)啟動servlet容器,訪問servlet。

          http://ip:port/appname(文件夾的名字)/servlet-url(或者url-pattern,會在web.xml中描述)

          3.servlet是如何運行的?

          打開瀏覽器,輸入http://ip:port/servlet01/hello

          1. 瀏覽器依據ip,port建立與容器(同時也是一個簡單的web server)之間的連接。

          2. 瀏覽器將相關數據打包(按照http協議將相關數據創建一個請求數據包),然后發送請求。

          3. 容器 將請求數據包解析出來,然后將解析到的數據放到請求對象里面,同時還會創建一個響應對象response。

          4. 容器創建servlet對象,然后調用該對象的service方法。(注:容器會將request對象和response對象作為參數傳進來??梢酝ㄟ^request對象獲得請求參數值,并將處理結果寫到response對象中。)

          5. 容器通過response獲取處理結果,然后打包(響應數據包)發送給瀏覽器。

          6. 瀏覽器解析響應數據包,生成響應的頁面。

          4.常見問題

          4.1 狀態碼

          是一個三位數字,由http協議指定,表示服務器處理請求的狀態。

          4.2 404

          • 含義:服務器依據請求路徑,找不到對應的資源。

          • 原因:

          a.沒有部署該應用。

          b.servlet-name不一致。

          c.路徑寫錯。

          4.3 500

          • 含義:系統出錯(應用程序在運行中出錯了)。

          • 原因: a.servlet類沒有繼承HttpServletb.servlet類出錯,例如將不合法的字符串轉換成數字。b.servlet類出錯,例如將不合法的字符串轉換成數字。

          4.4 405

          • 含義:找不到service方法。

          • 原因:沒有service方法。

          以上就是“Servlet的定義及運行原理是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注本站行業資訊頻道。

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          1、蘋果手機稱重功能使用教程2、打開手機設置,找到觸控選項。(資料圖片)3、 4、在touch中開啟三維觸摸和觸覺觸摸功能。5、 6、打開后進入瀏覽器搜索touchscale(點擊英文單詞直接進入)。7、 8、進入如下屏幕電子秤頁面。9、 10、這時候把物體放在手機上就可以稱重了。11、 12、注:由于該功能要求手機具備3dtouch功能,目前支持該功能的蘋果手機型號有:iPhone 6s、iPh...

          銀監會是干什么的?銀監會的五大職責有什么?下邊隨小編來具體了解一下銀監會是國有銀行,地方銀行的監督,管理機構。負責貫徹中央金融政策,法規的執行和落實。協助國有銀行,地方銀行開展金融,業務方面的資詢,服務,培訓等等。銀監會對上一級銀監會負責,對各國有銀行,地方銀行,商業銀行實行統籌管理的一個機構。銀監會的五大職責(一)依法依規對全國銀行業和保險業實行統一監督管理,維護銀行業和保險業合法、穩健運行,對...

          全國統一大市場是什么意思?國內統一大市場指的是在全國范圍內,在充分競爭以及由此形成的社會分工基礎上,各地區市場間、各專業市場間形成了相互依存、相互補充、相互開放、相互協調的有機的市場體系。在這種市場體系下,商品和要素,在各行業、各地區間自由地、無障礙地流通或流動,市場封鎖、地方保護等現象基本消除,從而實現資源在全國范圍內順暢流動和優化配置。就目前來看,引起市場分割的因素有很多,主要包括自然和人為兩...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>