方立勳_30天掌握JavaWeb_Web開發入門 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >

方立勳_30天掌握JavaWeb_Web開發入門

發表時間:2017-3-14

發布人:葵宇科技

浏覽次數:19

WEB開發的相關(guān)知識

  • WEB,在英語中(zhōng)web即表示網頁的意思,它用于表示Internet主機上供外界訪問(wèn)的資(zī)源。
  • Internet上供外界訪問(wèn)的Web資(zī)源分為:
    • 靜态web資(zī)源(如(rú)html 頁面):指web頁面中(zhōng)供人們浏覽的數據始終是不變。
    • 動(dòng)态web資(zī)源:指web頁面中(zhōng)供人們浏覽的數據是由程序産生的,不同時間點訪問(wèn)web頁面看到的内容各不相同。
  • 靜态web資(zī)源開發技術(shù)
    • Html
  • 常用動(dòng)态web資(zī)源開發技術(shù):
    • JSP/Servlet、ASP、PHP等
    • 在Java中(zhōng),動(dòng)态web資(zī)源開發技術(shù)統稱為Javaweb,我們課程的重點也是教大家如(rú)何使用Java技術(shù)開發動(dòng)态的web資(zī)源,即動(dòng)态web頁面。

WEB服務器(qì)

  • 學習web開發,需要先安裝一台web服務器(qì),然後再在web服務器(qì)中(zhōng)開發相應的web資(zī)源,供用戶使用浏覽器(qì)訪問(wèn)。
  • 疑問(wèn):學習web開發,為什麼必須要先裝一個(gè)WEB服務器(qì)?

常見WEB服務器(qì)

  1. WebLogic是BEA公司的産品,是目前應用最廣泛的Web服務器(qì),支持J2EE規範,而且不斷的完善以适應新的開發要求。

  2. 另一個(gè)常用的Web服務器(qì)是IBM公司的WebSphere,支持J2EE規範。

  3. 在小型的應用系統或者有特殊需要的系統中(zhōng),可(kě)以使用一個(gè)免費Web服務器(qì):Tomcat,該服務器(qì)支持全部JSP以及Servlet規範。

一些默認端口:
http:80
stmp:
https:

理解 http://www.baidu.com:

以http協議去訪問(wèn)www.baidu.com這台主機下(xià)默認端口(80端口)
主機名:www.baidu.com
域名:baidu.com

Tomcat服務器(qì)

Tomcat目錄層次結構

這裡寫圖片描述

虛似目錄的映射方式

  • 在server.xml文(wén)件的host元素中(zhōng)配置,例如(rú):
    這裡寫圖片描述

  • 在Tomcat6中(zhōng),不再建議在server.xml文(wén)件中(zhōng)配置context元素,細節查看tomcat服務器(qì)關(guān)于context元素的說明。

  • 讓tomcat自動(dòng)映射: tomcat服務器(qì)會自動(dòng)管理webapps目錄下(xià)的服務器(qì)webapps目錄中(zhōng)的we所有web應用,并把它映射成虛似目錄。換句話說,tomcatb應用,外界可(kě)以直接訪問(wèn)。

    讓web應用被外界訪問(wèn)的三種方式:

    1. 直接扔到webapps下(xià)
    2. 在server.xml文(wén)件的host元素中(zhōng)配置<Context path=”/xxx” docBase=”c:\mail”/>
    3. 在服務器(qì)目錄\conf\catalina\localhost\新建一個(gè)xml文(wén)件,文(wén)件名就是web應用的名稱 <ontext docBase=”c:\mail” />

WEB應用的組成結構

這裡寫圖片描述

web.xml文(wén)件

  • 通(tōng)過web.xml文(wén)件,可(kě)以将web應用中(zhōng)的:
    某個(gè)web資(zī)源配置為網站(zhàn)首頁
    将servlet程序映射到某個(gè)url地址上
    ……
    但凡涉及到對web資(zī)源進行配置,都需要通(tōng)過web.xml文(wén)件

  • 舉例:通(tōng)過web.xml文(wén)件配置網站(zhàn)首頁。

  • 注意:Web.xml文(wén)件必須放在web應用\WEB-INF目錄下(xià)。

配置虛似主機

配置虛似主機就是配置一個(gè)網站(zhàn)。

如(rú)需在WEB服務器(qì)中(zhōng)配置一個(gè)網站(zhàn),需使用Host元素進行配置,例:

配置的主機(網站(zhàn))要想被外部訪問(wèn),必須在DNS服務器(qì)或windows系統中(zhōng)注冊。

配置多個(gè)網站(zhàn)。

缺省虛似主機。

Web資(zī)源訪問(wèn)過程

這裡寫圖片描述

軟件密碼學基礎

公鑰的加密隻能私鑰解,私鑰加密的隻能公鑰解。

  1. 使用如(rú)下(xià)命令生成服務器(qì)證書(cmd下(xià))
    keytool -genkey -alias tomcat -keyalg RSA
  2. 在server.xml文(wén)件中(zhōng)配置加密連接器(qì),并指定加密連接器(qì)從哪個(gè)密鑰庫中(zhōng)獲取數字證書
    <Connector port=”8443” protocol=”HTTP/1.1” SSLEnabled=”true”
    maxThreads=”150” scheme=”https” secure=”true”
    clientAuth=”false” sslProtocol=”TLS” keystoreFile=”conf.keystore” keystorePass=”123456”/>
  3. 使用浏覽器(qì)訪問(wèn):https://localhost:8443

HTTP協議

http協議概述

  1. HTTP是hypertext transfer protocol(超文(wén)本傳輸協議)的簡寫,它是TCP/IP協議的一個(gè)應用層協議,用于定義WEB浏覽器(qì)與WEB服務器(qì)之間交換數據的過程。
  2. HTTP協議是學習JavaWEB開發的基石,不深入了解HTTP協議,就不能說掌握了WEB開發,更無法管理和(hé)維護一些複雜的WEB站(zhàn)點。
  3. HTTP協議的版本:HTTP/1.0、HTTP/1.1

什麼是http協議

  • 客戶端連上web服務器(qì)後,若想獲得web服務器(qì)中(zhōng)的某個(gè)web資(zī)源,需遵守一定的通(tōng)訊格式,HTTP協議用于定義客戶端與web服務器(qì)通(tōng)迅的格式。
  • 使用telnet程序連上web服務器(qì),并使用HTTP協議獲取某個(gè)頁面,快速了解 HTTP協議的作用。
  • 安裝IE浏覽器(qì)插件HttpWatch,查看IE浏覽器(qì)通(tōng)過HTTP協議獲取某個(gè)頁面。

http1.0和(hé)http1.1

  • 在HTTP1.0協議中(zhōng),客戶端與web服務器(qì)建立連接後,隻能獲得一個(gè)web資(zī)源。
  • HTTP1.1協議,允許客戶端與web服務器(qì)建立連接後,在一個(gè)連接上獲取多個(gè)web資(zī)源。
  • 使用telnet舉例說明。telnet localhost
  • Q:一個(gè)web頁面中(zhōng),使用img标簽引用了三幅圖片,當客戶端訪問(wèn)服務器(qì)中(zhōng)的這個(gè)web頁面時,客戶端總共會訪問(wèn)幾次服務器(qì),即向服務器(qì)發送了幾次HTTP請求。
    A:4次。請求網站(zhàn)一次,三張圖片三次。

HTP請求

客戶端連上服務器(qì)後,向服務器(qì)請求某個(gè)web資(zī)源,稱之為客戶端向服務器(qì)發送了一個(gè)HTTP請求。一個(gè)完整的HTTP請求包括如(rú)下(xià)内容:
一個(gè)請求行、若幹消息頭、以及實體内容,如(rú)下(xià)所示 :
這裡寫圖片描述
空行下(xià)面是請求數據。

http請求的細節1–請求行:

  • 請求行中(zhōng)的GET稱之為請求方式,請求方式有:

    POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
    常用的有: GET、 POST
    用戶如(rú)沒有設置,默認情況下(xià)浏覽器(qì)向服務器(qì)發送的都是get請求,例如(rú)在浏覽器(qì)直接輸地址訪問(wèn),點超鍊接訪問(wèn)等都是get,用戶如(rú)想把請求方式改為post,可(kě)通(tōng)過更改表單的提交方式實現。

  • 不管POST或GET,都用于向服務器(qì)請求某個(gè)WEB資(zī)源,這兩種方式的區别主要表現在數據傳遞上:

    如(rú)請求方式為GET方式,則可(kě)以在請求的URL地址後以?的形式帶上交給服務器(qì)的數據,多個(gè)數據之間以&進行分隔,例如(rú):
    GET /mail/1.html?name=abc&password=xyz HTTP/1.1
    GET方式的特點:在URL地址後附帶的參數是有限制的,其數據容量通(tōng)常不能超過1K
    如(rú)請求方式為POST方式,則可(kě)以在請求的實體内容中(zhōng)向服務器(qì)發送數據,Post方式的特點:傳送的數據量無限制
    何時使用GET和(hé)POST?
    這裡寫圖片描述

http請求的細節2–消息頭:
用于HTTP請求中(zhōng)的常用頭

  • Accept: text/html,image 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它所支持的數據類型
  • Accept-Charset: ISO-8859-1 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它支持哪種字符集
  • Accept-Encoding: gzip,compress 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),支持的壓縮格式
  • Accept-Language: en-us,zh-cn 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它的語言環境
  • Host: www.it315.org:80 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),想訪問(wèn)哪台主機
  • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),緩存數據的時間
  • Referer: http://www.it315.org/index.jsp 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),客戶機是哪個(gè)頁面來的(防盜鍊)
  • User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
    Cookie
  • Connection: close/Keep-Alive 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),請求完後是斷開鍊接還是何持鍊接
  • Date: Tue, 11 Jul 2000 18:23:51 GMT

HTTP響應

一個(gè)HTTP響應代表服務器(qì)向客戶端回送的數據,它包括:
一個(gè)狀态行、若幹消息頭、以及實體内容。
這裡寫圖片描述

http響應細節1–狀态行:

  • 狀态行
    格式: HTTP版本号 狀态碼 原因叙述
    舉例:HTTP/1.1 200 OK
  • 狀态碼用于表示服務器(qì)對請求的處理結果,它是一個(gè)三位的十進制數。響應狀态碼分為5類,如(rú)下(xià)所示:
狀态碼含義100–199表示成功接收請求,要求客戶端繼續提交下(xià)一次請求才能完成整個(gè)處理過程200–299表示成功接收請求并已完成整個(gè)處理過程,常用200300–399為完成請求,客戶需進一步細化請求。例如(rú),請求的資(zī)源已經移動(dòng)一個(gè)新地址,常用302、307和(hé)304400–499客戶端的請求有錯誤,常用404500–599服務器(qì)端出現錯誤,常用 500

http響應細節2–狀态行:
HTTP請求中(zhōng)的常用響應頭

  • Location: http://www.it315.org/index.jsp 服務器(qì)通(tōng)過這個(gè)頭,來告訴浏覽器(qì)跳到哪裡
  • Server:apache tomcat 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)服務器(qì)的型号
  • Content-Encoding: gzip 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì),數據的壓縮格式
  • Content-Length: 80 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)回送數據的長度
  • Content-Language: zh-cn 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)語言環境
  • Content-Type: text/html; charset=GB2312 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)回送數據的類型
  • Last-Modifierad: Tue, 11 Jul 2000 18:23:51 GMT
  • Refresh: 1;url=http://www.it315.org 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)定時刷新
  • Content-Disposition: attachment; filename=aaa.zip 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)以下(xià)載方式打數據
  • Transfer-Encoding: chunked 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)數據是以分塊方式回送的
  • Set-Cookie:SS=Q0=5Lb_nQ; path=/search
  • Expires: -1 控制浏覽器(qì)不要緩存(eg:服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)把回送的資(zī)源緩存多長時間,-1或0,則是不緩存)
  • Cache-Control: no-cache
  • Pragma: no-cache (服務器(qì)通(tōng)過以上兩個(gè)頭,也是控制浏覽器(qì)不要緩存數據)
  • Connection: close/Keep-Alive
  • Date: Tue, 11 Jul 2000 18:23:51 GMT

HTTP實用頭字段:
1. HTTP請求頭字段:*

  • Range頭指示服務器(qì)隻傳輸一部分web資(zī)源,這個(gè)頭可(kě)以用來實現斷點續傳功能。Range字段可(kě)以通(tōng)過三種格式設置要傳輸的字節範圍;
  • Range:bytes=1000-2000傳輸範圍從1000到2000字節。
  • Range:bytes=1000-
    傳輸web資(zī)源中(zhōng)第1000個(gè)字節以後的所有内容。
  • Range bytes=1000
    傳輸最後1000個(gè)字節。

2. HTTP響應消息頭字段:

  • Accept-Ranges:這個(gè)字段說明web服務器(qì)是否支持Range支持,則返回Accept-Ranges;bytes,如(rú)果不支持,則返回Accept-Ranges:none
  • Content-Range:指定了返回的web資(zī)源的字節範圍。這個(gè)字段值的格式是:例如(rú):Context-Range:1000-3000/5000

相關(guān)案例查看更多