1. 程式人生 > >JavaWeb Web和Http

JavaWeb Web和Http

red xml文件 drivers mime unpack val 內容 ejb get

1、 web

1.1web結構

技術分享

1.2常見的服務器

    1. WebLogic: orcale公司的產品,支持JAVAEE規範,收費
    2. WebsphereAS: IBM公司的產品 ,支持JAVAee規範, 收費
    3. Jboss: red公司的產品,支持EJB, 免費
    4. Tomcat: apache公司產品支持JavaEE規範,免費

技術分享

容器: 實現了什麽樣的規範,就稱為什麽樣的容器

1.3tomcat的版本

技術分享

1.3.1常見啟動問題

    • 端口號沖突

修改\apache-tomcat-xx\conf\server.xml文件

<Connector port="8080" protocol
="HTTP/1.1" connectionTimeout="20000" useBodyEncodingForURI="true" URIEncoding="gb2312" redirectPort="8443" />
    • 閃退. 一般需要設置java_home環境變量

1.4tomcat目錄結構

技術分享

1.5應用程序的部署方式

    • 將應用程序直接拷貝到webapps目錄下
    • 將應用程序打成war包, 直接拷貝到webapps目錄下

1.6tomcat的組成結構

技術分享

技術分享

1.6.1各種配置

1.6.1.1.虛擬應用:

    • 修改server.xml文件(此種配置不推薦)

在server.xml文件中配置如下

<!--path配置瀏覽器訪問的方式(虛擬路徑),docBase是物理路徑-->
<Context path = "/abc" docBase="d:\app\abc"/>

通過瀏覽器輸入 http://localhost:8080/abc/1.html 來訪問,必須重新啟動服務器

    • 在 conf/catalina/localhost/目錄下隨意建立一個xml文件,文件名任意(eg: abcde.xml),內容如下:
<?
xml version="1.0" encoding="UTF-8"?> <Context docBase="d:\app1" />

虛擬路徑就是文件名,通過瀏覽器訪問: http://localhost:8080/abcde/a.html 來訪問,不需要重啟服務器推薦使用

    • 實際開發時采用直接拷貝文件夾到webapps目錄下

1.6.1.2 默認應用的配置

只需要在conf/catalina/localhost/目錄下建立一個ROOT.xml文件,內容同上,這個應用就是默認應用,訪問的時候通過URL: http://localhost:8080/a.html 來訪問

1. 6.1.3配置默認頁面,端口號的修改

在應用目錄下app1/WEB-INF目錄下配置web.xml文件如下:

<welcome-file-list>
      <welcome-file>DefaultNew.jsp</welcome-file>
      <welcome-file>Default.jsp</welcome-file>
</welcome-file-list>

端口號修改需要在server.xml文件中配置:

<Connector port="8880" protocol="HTTP/1.1"
               connectionTimeout="20000"
               useBodyEncodingForURI="true" 
               URIEncoding="gb2312" 
               redirectPort="8443" />

默認端口號配置完畢需要重新啟動服務器,通過 http://localhost:8880/abcd/ 來訪問

6.1.4配置多個虛擬主機

D盤有個目錄 app下有個應用app,E盤有個目錄app下有個應用app,在server.xml中配置如下:

<Host name="www.baidu1.com" appBase="D:\app"
        unpackWARs="ture" autoDeploy="true" />
      
<Host name="www.baidu2.com" appBase="E:\app"
        unpackWARs="ture" autoDeploy="true" />

在C:\WINDOWS\system32\drivers\etc\hosts中配置路徑的IP映射如下:

127.0.0.1 www.baidu1.com
127.0.0.1 www.baidu2.com

此時就可以通過瀏覽器訪問應用了

2、 HTTP協議

2.1HTTP協議簡介

HTTP是hypertext transfer protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器與WEB服務器之間交換數據的過程。

HTTP協議是學習JavaWEB開發的基石,不深入了解HTTP協議,就不能說掌握了WEB開發,更無法管理和維護一些復雜的WEB站點。

HTTP協議的版本:HTTP/1.0、HTTP/1.1

2.2特點

技術分享

技術分享

技術分享

技術分享

2.3get和post方式區別

    • get方式請求參數會附加在url後,而post是看不到的,post相對安全
    • get方式對提交的數據大小有限制(1k),post方式對數據大小沒有限制.

2.4響應的狀態碼

狀態碼

含義

100~199

表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程

200~299

表示成功接收請求並已完成整個處理過程,常用200

300~399

為完成請求,客戶需進一步細化請求。例如,請求的資源已經移動一個新地址,常用302、307和304

400~499

客戶端的請求有錯誤,常用404

500~599

服務器端出現錯誤,常用500

2.5請求頭信息:

* Accept: 瀏覽器告訴服務端, 瀏覽器可接受的MIME類型

* MIME類型: 相當於操作系統下的文件類型。是由大類型和小類型組成: text/html;對應的關系在conf/web.xml中查詢

* Accept-Charset: 瀏覽器告訴服務端, 瀏覽器支持哪種字符集

* Accept-Encoding: 瀏覽器告訴服務端, 瀏覽器能夠進行解碼的數據編碼方式,比如gzip

* Accept-Language: 瀏覽器告訴服務端,瀏覽器支持的語言種類

* Host: 瀏覽器告訴服務端,瀏覽器所在的主機

* Referer: 瀏覽器告訴服務端,當前頁面從哪裏來的。用處: 1. 用來記錄廣告的信息 2. 防盜鏈

* Content-Type: 瀏覽器告訴服務端 ,內容類型 If-Modified-Since: 瀏覽器告訴服務端修改的時間

* Content-Length: 瀏覽器告訴服務端 請求正文內容長度

* Connection: 瀏覽器告訴服務端,連接的狀態

*Cookie: 瀏覽器告訴服務端 ,瀏覽器攜帶的Cookie

* Date: 瀏覽器告訴服務端,發送請求的時間

2.6響應頭信息

* Location : 服務端用來告訴瀏覽器,請求需要重定向.(必須結合狀態嗎302使用)

*Server : 服務端用來告訴瀏覽器,服務器的類型

* Content-Encoding: 服務端用來告訴瀏覽器,服務器對數據采用的編碼

*Content-Length: 服務端用來告訴瀏覽器,響應正文的長度

*Content-Language: 服務端用來告訴瀏覽器,zh-cn服務發送的文本的語言

*Content-Type: 服務端用來告訴瀏覽器,你要用哪個碼表來解析二進制數據

* Last-Modified : 服務端用來告訴瀏覽器,訪問資源的最後修改時間

*Refresh:服務端用來告訴瀏覽器,多長時間刷新一次

*Content-Disposition: 服務端用來告訴瀏覽器,以下載文件的方式打開文件

* Expires: -1 : 服務端用來告訴瀏覽器,不要緩存 Cache-Control: no-cache (1.1) Pragma: no-cache (1.0)

* Set-Cookie: 服務端用來告訴瀏覽器,要存儲的內容

JavaWeb Web和Http