day07_Tomcat服務器與http學習筆記

一、Tomcat服務器(很熟悉)

  1、Web開發概述

    WEB,在英語中web即表示網頁的意思,它用於表示Internet主機上(服務器)供外界訪問的資源。

    Internet上供外界訪問的Web資源分爲:

      靜態web資源(如html、css、js頁面):指web頁面中供人們瀏覽的數據始終是不變。

      動態web資源(如JSP、PHP、ASP):指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。

    常用靜態web資源開發技術

      html、css、js技術

    常用動態web資源開發技術:

      JSP/Servlet(JAVA)、ASP(微軟.net)、PHP等

    在Java中,動態web資源開發技術統稱爲Javaweb,我們課程的重點也是教大家如何使用Java技術開發動態的web資源,即動態web頁面

javaweb:使用java技術開發web頁面,供瀏覽器訪問的項目。

    Web是一種分佈式應用架構,旨在共享分佈在網絡上的各個Web服務器中的所有相互鏈接信息。
    Web採用客戶/服務器通信模式,客戶與服務器之間用HTTP協議通信。
    Web使用超級文本技術(HTML)來鏈接網絡上的信息。信息存放在服務器端,客戶機通過瀏覽器(如IE、Chrome)就可以查找網絡中的各個Web服務器上的信息。

與Web相關的一個概念是WWW(World Wide Web)。WWW是指全球範圍內的Web,它以Internet爲網絡平臺,Internet是來自世界各地的衆多相互連接的計算機和其他設備的集合,而WWW則是Internet上的一種分佈式應用結構。

歸納起來,Web具有以下3個特徵:
    1.用超級文本技術HTML來表達信息,以及建立信息與信息的鏈接。
    2.用統一資源定位技術URL來實現網絡上信息的精確定位。
    3.用網絡應用層協議HTTP來規範瀏覽器與Web服務器之間的通信過程。

    javaSE: 

    javaEE:13種

    javaME:

      JavaEE規範: 指的是javaEE13種技術的總稱。如:Servlet/Jsp  JDBC  JNDI  JTA ......

    Tomcat:Servlet/Jsp容器,輕量級服務器。

    常見的服務器:

      1.WebLogic是BEA公司的產品,是目前應用最廣泛的Web服務器,支持JavaEE規範(接口),而且不斷的完善以適應新的開發要求。(重量級)

      2.WebSphereAS是IBM公司的產品,支持JavaEE規範。(重量級)

      3.大名鼎鼎的紅帽的產品,原來屬於開源組織JBossAS,後被紅帽收購。支持JavaEE規範,免費。(重量級)

      4.在小型的應用系統或者有特殊需要的系統中,可以使用一個免費的Web服務器:Tomcat(短小精悍)該服務器支持JSP以及Servlet規範。(輕量級)

  2、Tomcat下載

      Tomcat是在SUN公司推出的小型Servlet/JSP調試工具的基礎上發展起來的一個優秀的Servlet容器(優秀的Java類的容器),Tomcat本身完全用Java語言編寫。

      目前是Apache開源軟件組織的一個軟件項目,得到了廣大開源代碼志願者的大力支持,且可以和目前大部分的主流Web服務器(IIS()、Apache服務器)一起工作,它運行穩定、可靠且高效。

      已成爲目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。

      我們後面的JavaWeb學習都是基於Tomcat服務器的。

      Tomcat官方站點http://tomcat.apache.org

        tar.gz文件是Linux操作系統下的安裝版本。

        exe文件是Windows系統下的安裝版本x86/x64。

        zip文件是Windows系統下的壓縮版本(綠色版)(推薦)。

  3、Tomcat的安裝與配置

    3.1、安裝

        直接解壓到指定目錄即可。(注:目錄不要太深,目錄不要有中文或空格)

    3.2、啓動服務器

        啓動服務器的前提:

          配置JAVA_HOME

          配置CATALINA_HOME

          startup.bat 啓動命令

          shutdown.bat 停止命令

我的操作如下:

      如果tomcat端口被佔用,解決辦法:

        > 法一:修改F:\apache-tomcat-7.0.52\conf\server.xml

          第70行:  <Connector port="8081"/>

        > 法二:關閉端口號對應的進程

          cmd --> netstat -ano --> 找到PID --> 任務管理器 --> 顯示PID --> 關閉進程

    3.3、測試服務器是否啓動成功

            http://localhost:8080

            如果出現如下界面,表示Tomcat啓動成功。

    3.4、Tomcat的主要目錄結構(重要)

  4、標準的JavaWeb應用的目錄結構(很重要,要記住)

      應用:

      MyApp

        1.html

        Css

          myStyle.css

        Js

          My.js

        WEB-INF    注意:固定寫法。此目錄下的文件不能被外部直接訪問,是由服務器負責調用。

          |classes:我們編寫的程序代碼.class文件(換成Navigator視窗(導航視圖)可以看見)

          |lib:應用需要用的jar文件(java類運行所需要的jar包)

          |web.xml:當前應用的配置信息

          (如果沒有該文件,右鍵項目,點擊java EE Tools 點擊其中 Genertate Deployment Descriptor Stub,這樣WEB-INF就會添加上web.xml了)

  5、集成和部署應用到Tomcat服務器

      >0、在MyEclipse中集成Tomcat步驟:

        在MyEclipse10中:Window --> Preferences --> MyEclipse --> Servers --> Runtime Environments --> Add選項

        在MyEclipse2017中:Window --> Preferences --> Servers --> Runtime Environments --> Add選項

      >1、開放目錄部署方式(方式1:手動方式)

        把應用WebRoot目錄下的所有文件直接複製粘貼到 F:\apache-tomcat-7.0.52\webapps 下。(該文件夾下需要新建一個文件夾來裝複製粘貼過來的文件,文件夾名字一般與項目名稱相同)

      >2、把應用打成war包方式(方式2)

        cmd進入項目目錄 day07_03_myApp1\WebRoo 中

        打war包命令:jar -cvf day07_03_myApp1.war.

        把war包直接複製到F:\apache-tomcat-7.0.52\webapps下,應用會自動解壓;若刪除該war包,則解壓的文件會自動刪除。

        注:webapps目錄下有幾個目錄就代表有幾個應用。

      Tomcat服務器與MyEclipse集成(一定要掌握)

        1、Tomcat集成 

        2、創建web應用

        3、部署

URL: 統一資源定位符(俗稱:網址)

URI: 統一資源標識符

          http://localhost:8080/day07_03_myApp1/1.html

         URL=協議  主機IP(端口號)   URI(當前應用的資源路徑)

  6、深入熟悉Tomcat服務器(瞭解)

      配置虛擬目錄:

        作用:把應用放到其他目錄,Tomcat也能管理。

        方式一:(不建議使用,因爲需要重啓服務器)

        例如:

          應用真實目錄:d:\day07_03_myApp1

          應用虛擬目錄:http://localhost:8080/myApp

          虛擬目錄映射:

            進入F:\apache-tomcat-7.0.52\conf 中,打開server.xml

            <Context path="/myApp" docBase="d:\day07_03_myApp1"/>

            docBase:代表的是應用的真實路徑。

            path:網絡訪問的虛擬目錄名。

          注:需要重啓服務器。

        方式二:

          新建myApp.xml文件,文件名就代表應用的虛擬目錄名。

          將文件放在F:\apache-tomcat-7.0.52\conf\Catalina\localhost目錄下,myApp.xml文件內容如下:

          <?xml version="1.0" encoding="utf-8"?>

            <Context docBase="d:\day07_03_myApp1"/>

          訪問:http://localhost:8080/myApp

注:腳本catalina用於啓動和關閉tomcat服務器,是最關鍵的腳本。在tomcat裏有此文件,寫這個腳本的人爲什麼命名爲catalina?

            一開始我還以爲是其初戀女友,後來才知道原來是一個小島的名字。catalina(卡塔利娜)

      常見的404錯誤截圖:

  7、配置默認端口、默認應用、默認主頁

      A、 配置默認端口

        把server.xml中

          <Connector port="80" protocol="HTTP/1.1" 

                   connectionTimeout="20000" 

                   redirectPort="8443" />

        因爲瀏覽器http默認端口:80 

        這樣訪問的時候,就不用再寫端口號了。例如:http://localhost/myApp/1.html

      B、配置默認應用

        默認應用:把配置的虛擬目錄的配置文件名改爲ROOT.xml即可。例如 http://localhost/1.html

      C、配置默認主頁

        修改當前應用web.xml,添加以下內容:例如 http://localhost/  不用寫1.html了。

============================================================

二、HTTP協議

  1、HTTP協議概述

      > HTTP是HyperText Transfer Protocol(超文本傳輸協議)的簡寫,傳輸HTML文件。

      > 用於定義WEB瀏覽器與WEB服務器之間交換數據的過程及數據本身的格式。

  2、請求部分

    1、請求消息行

      GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1  第一行是消息行。

        請求方式:Get(默認)  POST  DELETE  HEAD等

        GET:明文傳輸,不安全,數據量有限,不超過1kb。(數據量根據瀏覽器的不同而略有區別)

        例如:GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1

        POST: 暗文傳輸,安全,數據量沒有限制。

        例如:POST /day08_02/1.html HTTP/1.1

        URI:統一資源標識符。去協議和IP地址。

       HTTP/1.1:協議/版本。

    2、請求消息頭

        從第2行到空行處,都叫消息頭。

        Accept:瀏覽器可接受的MIME類型,告訴服務器客戶端能接收什麼樣類型的文件。

        Accept-Charset:瀏覽器通過這個頭告訴服務器,它支持哪種字符集。

        Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。

        Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。可以在瀏覽器中進行設置。

        Host:初始URL中的主機和端口。 

        Referer:包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面。

        Content-Type:內容類型,告訴服務器瀏覽器傳輸數據的MIME類型,文件傳輸的類型。例如:application/x-www-form-urlencoded(默認)

        If-Modified-Since:Wed, 02 Feb 2011 12:04:56 GMT  利用這個頭與服務器的文件進行比對,如果一致,則從緩存中直接讀取文件。

        User-Agent:瀏覽器類型。

        Content-Length:表示請求消息正文的長度。

        Connection:表示是否需要持久連接。如果服務器看到這裏的值爲“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接)。

        Cookie:這是最重要的請求頭信息之一 (在講會話時解析)。

        Date:Date: Mon, 22 Aug 2011 01:55:39  GMT請求時間GMT。

    3、消息正文

        當請求方式是POST方式時,才能看見消息正文。

        例如:uName=tom&pwd=123

  3、響應部分

    1、響應消息行

        第一行:

        HTTP/1.1 200 OK

        協議/版本 響應狀態碼 對響應碼的描述(一切正常)

        響應狀態碼:常用的就40多個。

        200(正常)          一切正常

        302/307(臨時重定向)

        304(未修改)        表示客戶機緩存的版本是最新的,客戶機可以繼續使用它,無需到服務器請求

        404(找不到)        服務器上不存在客戶機所請求的資源。

        500(服務器內部錯誤)

    2、響應消息頭

        Location:http://www.it315.org/index.jsp  指示新的資源的位置通常和302/307一起使用,完成請求重定向

        Server:apache tomcat  指示服務器的類型

        Content-Encoding:gzip  服務器發送的數據採用的編碼類型

        Content-Length:80  告訴瀏覽器正文的長度

        Content-Language:zh-cn  服務發送的文本的語言

        Content-Type:text/html; charset=GB2312  服務器發送內容的MIME類型,即告知瀏覽器,響應正文的MIME類型 

        Last-Modified:Tue, 11 Jul 2000 18:23:51   GMT文件的最後修改時間

        Refresh:1;url=http://www.it315.org  指示客戶端刷新頻率,單位是秒

        Content-Disposition:attachment; filename=aaa.zip  指示客戶端下載文件

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search  服務器端發送的Cookie

        Expires:-1

        Cache-Control:no-cache (1.1)  

        Pragma:no-cache  (1.0)  表示告訴客戶端不要使用緩存

        Connection:close/Keep-Alive   

        Date:Tue, 11 Jul 2000 18:23:51 GMT

    3、響應正文

          和網頁右鍵“查看源碼”看到的內容一樣。

============================================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章