日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

javaWeb——Servlet

發布時間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaWeb——Servlet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Servlet

  • 系統架構
    • B/S結構的系統通信原理(沒有涉及到Java小程序)
    • 關于WEB服務器軟件
    • 實現一個最基本的web應用(這個web應用中沒有java小程序)
    • 對于一個動態的web應用來說,一個請求和響應的過程有多少個角色參與,角色和角色之間有多少個協議
  • 模擬Servlet本質
  • 使用idea開發第一個servlet程序
  • Servlet對象的生命周期
  • 適配器改造Servlet
  • ServetConfig
  • ServletContest

本文是觀看動力節點老杜所寫筆記,方便后面復習,這個是視頻地址:
https://www.bilibili.com/video/BV1Z3411C7NZ?p=7

系統架構

  1. C/S和B/S結構的系統

    • 不同結構的系統在不同的業務場景下有不同的適用場景。
    • 娛樂性軟件建議使用?
      • C/S 結構
    • 公司內部使用的一些業務軟件建議使用?
      • 公司內部使用的系統,需要維護成本低。
      • 公司內部使用的系統,不需要很酷炫。
      • 公司內部使用的企業級系統主要是能夠進行數據的維護即可。
      • B/S 結構。
  2. 注意了:開發B/S結構的系統,其實就是開發網站,其實就是開發一個WEB系統。

    • 開發一個WEB系統你需要會哪些技術?
      • WEB前端(運行在瀏覽器上的程序。)
        • HTML
        • CSS
        • JavaScript
      • WEB后端(WEB服務器端的程序。)
        • Java可以(Java做WEB開發我們稱為JavaWEB開發。JavaWEB開發最核心的規范:Servlet【Server Applet服務器端的Java小程序。】)
        • C語言也可以
        • C++也可以
        • Python也行
        • PHP也可以
  3. JavaEE是什么?

    • Java包括三大塊:
      • JavaSE
        • Java標準版(一套類庫:別人寫好的一套類庫,只不過這個類庫是標準類庫,走EE,或者走ME,這個SE一定是基礎,先學。)
      • JavaEE(WEB方向,WEB系統。)
        • Java企業版(也是一套類庫:也是別人寫好的一套類庫,只不過這套類庫可以幫助我們完成企業級項目的開發,專門為企業內部提供解決方案的一套(多套)類庫。)
        • 別人寫好的,你用就行了,用它可以開發企業級項目。
        • 可以開發web系統。
        • Java比較火爆的就是這個JavaEE方向。
      • JavaME
        • Java微型版(還是一套類庫,只不過這套類庫幫助我們進行電子微型設備內核程序的開發)
        • 機頂盒內核程序,吸塵器內核程序,電冰箱內核程序,電飯煲內核程序。。。。。
    • JavaEE實際上包括很多種規范,13種規范,其中Servlet就是JavaEE規范之一。學Servlet還是Java語言。

    B/S結構的系統通信原理(沒有涉及到Java小程序)


  • WEB系統的訪問過程

    • 第一步:打開瀏覽器
    • 第二步:找到地址欄
    • 第三步:輸入一個合法的網址
    • 第四步:回車
    • 第五步:在瀏覽器上會展示響應的結果。
  • 關于域名:

    • https://www.baidu.com/ (網址)
    • www.baidu.com 是一個域名
    • 在瀏覽器地址欄上輸入域名,回車之后,域名解析器會將域名解析出來一個具體的IP地址和端口號等。
    • 解析結果也許是:http://110.242.68.3:80/index.html
  • IP地址是啥?

    • 計算機在網絡當中的一個身份證號。在同一個網絡當中,IP地址是唯一的。
    • A計算機要想和B計算機通信,首先你需要知道B計算機的IP地址,有了IP地址才能建立連接。
  • 端口號是啥?

    • 一個端口代表一個軟件(一個端口代表一個應用,一個端口僅代表一個服務)。
    • 一個計算機當中有很多軟件,每一個軟件啟動之后都有一個端口號。
    • 在同一個計算機上,端口號具有唯一性。
  • 一個WEB系統的通信原理?通信步驟:

    • 第一步:用戶輸入網址(URL)
    • 第二步:域名解析器進行域名解析:http://110.242.68.3:80/index.html
    • 第三步:瀏覽器軟件在網絡中搜索110.242.68.3這一臺主機,直到找到這臺主機。
    • 第四步:定位110.242.68.3這臺主機上的服務器軟件,因為是80端口,可以很輕松的定位到80端口對應的服務器軟件。
    • 第五步:80端口對應的服務器軟件得知瀏覽器想要的資源名是:index.html
    • 第六步:服務器軟件找到index.html文件,并且將index.html文件中的內容直接輸出響應到瀏覽器上。
    • 第七步:瀏覽器接收到來自服務器的代碼(HTML CSS JS)
    • 第八步:瀏覽器渲染,執行HTML CSS JS代碼,展示效果。
  • 什么是URL?

    • 統一資源定位符(http://www.baidu.com)
  • 什么是請求,什么是響應?

    • 請求和響應實際上說的是數據的流向不同。
    • 從Browser端發送數據到Server端,我們稱為請求。英語單詞:request
    • 從Server端向瀏覽器Browser端發送數據,我們稱為響應。英語單詞:response
    • B --> S (請求request)
    • S --> B (響應response)

關于WEB服務器軟件

  • WEB服務器軟件都有哪些呢?(這些軟件都是提前開發好的。)
    • Tomcat(WEB服務器)
    • jetty(WEB服務器)
    • JBOSS(應用服務器)
    • WebLogic(應用服務器)
    • WebSphere(應用服務器)
  • 應用服務器和WEB服務器的關系?
    • 應用服務器實現了JavaEE的所有規范。(JavaEE有13個不同的規范。)
    • WEB服務器只實現了JavaEE中的Servlet + JSP兩個核心的規范。
    • 通過這個講解說明了:應用服務器是包含WEB服務器的。
    • 用過JBOSS服務器的同學應該很清楚,JBOSS中內嵌了一個Tomcat服務器。
  • Tomcat下載
    • apache官網地址:https://www.apache.org/
    • tomcat官網地址:https://tomcat.apache.org
    • tomcat開源免費的輕量級WEB服務器。
    • tomcat還有另外一個名字:catalina(catalina是美國的一個島嶼,風景秀麗,據說作者是在這個風景秀麗的小島上開發了一個輕量級的WEB服務器,體積小,運行速度快,因此tomcat又被稱為catalina)
    • tomcat的logo是一只公貓(寓意表示Tomcat服務器是輕巧的,小巧的,果然,體積小,運行速度快,只實現了Servlet+JSP規范)
    • tomcat是java語言寫的。
    • tomcat服務器要想運行,必須先又jre(Java的運行時環境)
  • Tomcat服務器要想運行,需要先有jre,所以要先安裝JDK,配置java運行環境。
    • JAVA_HOME=D:\Program Files\Java\jdk1.8.0_131
    • PATH=%JAVA_HOME%\bin
    • 目前JAVA_HOME沒有配置,思考一個問題,這樣行不行呢?目前只運行java程序是沒問題的。真的沒問題嗎?
  • Tomcat服務器的安裝:
  • 綠色版本的安裝很簡單,直接zip包解壓即可。解壓就是安裝。
  • 我們可以把java開發所有相關的工具都安裝到固定的目錄下,這樣比較方便管理。
  • 啟動Tomcat
    • bin目錄下有一個文件:startup.bat,通過它可以啟動Tomcat服務器。
      • xxx.bat文件是個什么文件?bat文件是windows操作系統專用的,bat文件是批處理文件,這種文件中可以編寫大量的windows的dos命令,然后執行bat文件就相當于批量的執行dos命令。
      • startup.sh,這個文件在windows當中無法執行,在Linux環境當中可以使用。在Linux環境下能夠執行的是shell命令,大量的shell命令編寫在shell文件當中,然后執行這個shell文件可以批量的執行shell命令。
      • tomcat服務器提供了bat和sh文件,說明了這個tomcat服務器的通用性。
      • 分析startup.bat文件得出,執行這個命令,實際上最后是執行:catalina.bat文件。
      • catalina.bat文件中有這樣一行配置:MAINCLASS=org.apache.catalina.startup.Bootstrap
        (這個類就是main方法所在的類。)
      • tomcat服務器就是Java語言寫的,既然是java語言寫的,那么啟動Tomcat服務器就是執行main方法。
    • 我們嘗試打開dos命令窗口,在dos命令窗口中輸入startup.bat來啟動tomcat服務器。
    • 啟動Tomcat服務器只配置path對應的bin目錄是不行的。有兩個環境變量需要配置:
      • JAVA_HOME=JDK的根
      • CATALINA_HOME=Tomcat服務器的根
        我們來看看如果不配置這兩個環境變量會有什么問題

        很明顯,在Administrator下面,我們找不到startup.bat這個命令,Tomcat有bin目錄,所以我們要把bin目錄配置一下
        我們再來看一下,如果沒有配置JAVA_HOME會有什么問題,當我們配置Tomcat下的bin目錄后,再去啟動看看。(這個時候沒有配置CATALINA_HOME)

        因為上面講過了,startup.bat文件得出,執行這個命令,實際上最后是執行:catalina.bat文件。所以CATALINA_HOME環境變量一定要配置,CATALINA_HOME是Tomcat服務器的根

        大家是不是認為這樣就可以了,其實還不行,真是曲折啊。

        因為JAVA_HOME還沒有配置

        CATALINA_HOME需要JAVA_HOME,但是此時還沒有配置。我們沒有告訴Tomcat服務器,JAVA在哪里,所以我們還需要通過JAVA_HOME告訴Tomcat服務器jdk在哪里,然后Tomcat服務器就可以啟動了。

Tomcat是Java語言寫的,我們執行startup的話,它就會去找catalina,catalina就會去執行Bootstrap這個類中的main方法,main方法一執行,就代表Tomcat服務器啟動成功。

上面那個是我對Tomcat服務器啟動原理的大概了解,畢竟剛開始學習,還沒理解到位。關于Tomcat服務器的啟動原理詳解,我推薦大家看這篇Tomcat服務器啟動原理詳解

  • 關于Tomcat服務器的目錄
  • bin : 這個目錄是Tomcat服務器的命令文件存放的目錄,比如:啟動Tomcat,關閉Tomcat等。
  • conf: 這個目錄是Tomcat服務器的配置文件存放目錄。(server.xml文件中可以配置端口號,默認Tomcat端口是8080)
  • lib :這個目錄是Tomcat服務器的核心程序目錄,因為Tomcat服務器是Java語言編寫的,這里的jar包里面都是class文件。
  • logs: Tomcat服務器的日志目錄,Tomcat服務器啟動等信息都會在這個目錄下生成日志文件。
  • temp:Tomcat服務器的臨時目錄。存儲臨時文件。
  • webapps:這個目錄當中就是用來存放大量的webapp(web application:web應用),webapp里面的一個目錄就是一個項目。
  • work:這個目錄是用來存放JSP文件翻譯之后的java文件以及編譯之后的class文件。
  • 配置Tomcat服務器需要哪些環境變量?
    • JAVA_HOME=JDK的根
    • CATALINA_HOME=Tomcat服務器的根
    • PATH=%JAVA_HOME%\bin;%CATALINA_HOME%\bin
  • 啟動Tomcat: startup
  • 關閉Tomcat:stop (shutdown.bat文件重命名為stop.bat,為什么?原因是shutdown命令和windows中的關機命令沖突。所以修改一下。)不要寫成shutdown,這個是windows關機命令
  • 怎么測試Tomcat服務器有沒有啟動成功呢?
    • 打開瀏覽器,在瀏覽器的地址欄上輸入URL即可:
      • http://ip地址:端口號
      • ip地址是什么?端口號我知道,是8080
      • 本機的IP地址是:127.0.0.1,或者是localhost,都行。

實現一個最基本的web應用(這個web應用中沒有java小程序)

  • 第一步:找到CATALINA_HOME\webapps目錄

    • 因為所有的webapp要放到webapps目錄下。(這是Tomcat服務器的要求。如果不放到這里,Tomcat服務器找不到你的應用。)
  • 第二步:在CATALINA_HOME\webapps目錄下新建一個子目錄,起名:oa

    • 這個目錄名oa就是你這個webapp的名字。
  • 第三步:在oa目錄下新建資源文件,例如:index.html

    • 編寫index.html文件的內容。
  • 第四步:啟動Tomcat服務器

  • 第五步:打開瀏覽器,在瀏覽器地址欄上輸入這樣的URL:

    • http://127.0.0.1:8080/oa/index.html

    • 這個時候,我們發現,其實我們直接找到index.html,雙擊用瀏覽器打開,它的效果其實和剛剛是一樣的,那我們為什么還要這么費勁輸入地址呢?
      其實,我們可以這樣來想一下,這是一個項目,可能是其他主機來訪問它,那怎么雙擊打開呢,肯定需要輸入這個地址

  • 思考一個問題:

    • 我們在瀏覽器上直接輸入一個URL,然后回車。這個動作和超鏈接一樣嗎?既然是一樣的,我們完全可以使用超鏈接。
      login.html

      index.html


      然后,點擊超鏈接

 <!--注意以下的路徑,以/開始,帶項目名,是一個絕對路徑。不需要添加:http://127.0.0.1:8080--><a href="/oa/login.html">user login2</a><!--多個層級也沒有關系,正常訪問即可。--><!--注意:我們目前前端上的路徑都以“/”開始的,都是加項目名的。--><a href="/oa/test/debug/d.html">d page</a>
  • http://127.0.0.1:8080/oa/userList.html

    • 訪問這個地址,可以展示一個用戶列表頁面。但是這個用戶列表頁面是寫死在HTML文件當中的。這種資源我們稱為靜態資源。怎么能變成動態資源。顯然需要連接數據庫。
    • 連接數據庫需要JDBC程序,也就是說需要編寫Java程序連接數據庫,數據庫中有多少條記錄,頁面上就顯示多少條記錄,這種技術被稱為動態網頁技術。(動態網頁技術并不是說頁面中有flash動畫。動態網頁技術是說頁面中的數據是動態的,根據數據庫中數據的變化而變化。)
    • 對于一個動態的web應用來說,一個請求和響應的過程有多少個角色參與,角色和角色之間有多少個協議


    • 也就是說我們如果想要訪問Java程序的話,應該要有一個路徑來對應這個Java程序
  • 有哪些角色(在整個BS結構的系統當中,有哪些人參與進去了)

    • 瀏覽器軟件的開發團隊(瀏覽器軟件太多了:谷歌瀏覽器、火狐瀏覽器、IE瀏覽器…)
    • WEB Server的開發團隊(WEB Server這個軟件也是太多了:Tomcat、Jetty、WebLogic、JBOSS、WebSphere…)
    • DB Server的開發團隊(DB Server這個軟件也是太多了:Oracle、MySQL…)
    • webapp的開發團隊(WEB應用是我們做為JavaWEB程序員開發的)
  • 角色和角色之間需要遵守哪些規范,哪些協議

    • webapp的開發團隊 和 WEB Server的開發團隊 之間有一套規范: JavaEE規范之一Servlet規范。
    • Servlet就是一套接口,就是一套規范,是SUN公司制定小程序和服務器之間的規范
      • Servlet規范的作用是什么?
        • WEB Server 和 webapp解耦合。我們開發的程序不僅可以運行在Tomcat服務器,還可以運行在其他服務器。
  • 瀏覽器發送數據給服務器,服務器傳回數據給瀏覽器,他們是不同計算機之間的通信,需要一套協議才可以進行通信。
  • Browser 和 WebServer之間有一套傳輸協議:HTTP協議。(超文本傳輸協議。)
  • webapp開發團隊 和 DB Server的開發團隊之間有一套規范:JDBC規范。

下面內容,我寫在同專欄的其他博客上

模擬Servlet本質

模擬Servlet本質

使用idea開發第一個servlet程序

使用idea開發第一個servlet程序

Servlet對象的生命周期

Servlet對象的生命周期

適配器改造Servlet

適配器改造Servlet

ServetConfig

ServletConfig

ServletContest

ServletContest

持續更新中…

總結

以上是生活随笔為你收集整理的javaWeb——Servlet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。