亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談一下Servlet的定義以及運行原理

 更新時間:2023年03月24日 09:22:24   作者:洋柿子0826  
相信有很多剛入行的朋友會疑惑Servlet到底是個什么意思,那么這篇文章就來淺談一下到底什么是Servlet,以及Servlet的原理與如何寫一個Servlet,,需要的朋友可以參考下

1.什么是servlet?

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

背景:

image

常用的web服務器:

  • apache http Server
  • nginx:俄羅斯小伙子寫的
  • IIS

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

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

1.1 擴展web服務器端功能

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

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

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

1.2 servlet組件

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

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

2.如何寫一個servlet?

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

注:創(chuàng)建一個具有如下結構的文件夾:

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

image

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

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

image

3.servlet是如何運行的?

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

image

  1. 瀏覽器依據ip,port建立與容器(同時也是一個簡單的web server)之間的連接。
  2. 瀏覽器將相關數據打包(按照http協議將相關數據創(chuàng)建一個請求數據包),然后發(fā)送請求。
  3. 容器 將請求數據包解析出來,然后將解析到的數據放到請求對象里面,同時還會創(chuàng)建一個響應對象response。
  4. 容器創(chuàng)建servlet對象,然后調用該對象的service方法。(注:容器會將request對象和response對象作為參數傳進來??梢酝ㄟ^request對象獲得請求參數值,并將處理結果寫到response對象中。)
  5. 容器通過response獲取處理結果,然后打包(響應數據包)發(fā)送給瀏覽器。
  6. 瀏覽器解析響應數據包,生成響應的頁面。

4.常見問題

4.1 狀態(tài)碼

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

4.2 404

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

    a.沒有部署該應用。

    b.servlet-name不一致。

    c.路徑寫錯。

4.3 500

  • 含義:系統出錯(應用程序在運行中出錯了)。
  • 原因: a.servlet類沒有繼承HttpServletb.servlet類出錯,例如將不合法的字符串轉換成數字。b.servlet類出錯,例如將不合法的字符串轉換成數字。

4.4 405

  • 含義:找不到service方法。
  • 原因:沒有service方法。

到此這篇關于淺談一下Servlet的定義以及運行原理的文章就介紹到這了,更多相關Servlet定義和運行原理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java多線程從入門到精通看這篇就夠了

    java多線程從入門到精通看這篇就夠了

    熟悉 Java 多線程編程的同學都知道,當我們線程創(chuàng)建過多時,容易引發(fā)內存溢出,因此我們就有必要使用線程池的技術了,今天通過本文給大家分享java多線程從入門到精通的相關知識,一起看看吧
    2021-06-06
  • idea每次修改代碼都需要重新install的問題

    idea每次修改代碼都需要重新install的問題

    這篇文章主要介紹了idea每次修改代碼都需要重新install的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Spring?Boot?整合RocketMq實現消息過濾功能

    Spring?Boot?整合RocketMq實現消息過濾功能

    這篇文章主要介紹了Spring?Boot?整合RocketMq實現消息過濾,本文講解了RocketMQ實現消息過濾,針對不同的業(yè)務場景選擇合適的方案即可,需要的朋友可以參考下
    2022-06-06
  • Java集合Set、List、Map的遍歷方法

    Java集合Set、List、Map的遍歷方法

    這篇文章主要介紹了Java集合Set、List、Map的遍歷方法,是非常實用的遍歷技巧,需要的朋友可以參考下
    2014-09-09
  • java判讀數組中是否有重復值的示例

    java判讀數組中是否有重復值的示例

    這篇文章主要介紹了java判讀數組中是否有重復值的示例,需要的朋友可以參考下
    2014-04-04
  • Spring MVC全局異常實例詳解

    Spring MVC全局異常實例詳解

    這篇文章主要給大家介紹了關于Spring MVC全局異常的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • Java使用Junit4.jar進行單元測試的方法

    Java使用Junit4.jar進行單元測試的方法

    今天通過本文給大家介紹Java使用Junit4.jar進行單元測試的方法,本文通過圖文實例相結合給大家介紹的非常詳細,需要的朋友參考下吧
    2021-11-11
  • SpringBoot多模塊打包部署Docker的項目實戰(zhàn)

    SpringBoot多模塊打包部署Docker的項目實戰(zhàn)

    本文通過介紹最常見的Maven管理的Spring Boot項目多模塊打包部署Docker來介紹一下項目部署過程中操作流程和幾個需要注意的點,具有一定的參加價值,感興趣的可以了解一下
    2023-08-08
  • java返回集合為null還是空集合及空集合的三種寫法小結

    java返回集合為null還是空集合及空集合的三種寫法小結

    這篇文章主要介紹了java返回集合為null還是空集合及空集合的三種寫法小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring Data Jpa 復合主鍵的實現

    Spring Data Jpa 復合主鍵的實現

    這篇文章主要介紹了Spring Data Jpa 復合主鍵的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論