Java Web 编程入门知识
Java SE 的內容基本都講完了.
但是 Java一般用于網絡編程, 就是所謂的web編程. Java SE講的基本上都是本地程序的內容.?
而Java web編程需要在兩個程序中傳輸數據, 以后就是Java EE的前提知識了.
一. 什么是網絡程序(Web Program)
以前Java SE 的內容將的都是java 或 面向對象的基本知識, 所編寫的程序都是本地程序.
那么什么是網絡程序呢.
定義很簡單:
???? 能夠接受另一臺計算機發過來的的數據或者能夠向另1臺計算機發送數據的程序就是網絡程序.
為什么要強調另一臺計算機呢,
因為在同一臺計算中兩個程序有很多方法互相通信(例如互相讀寫同1個本地文件), 但是這兩個程序就不一定是網絡程序了.
二. 什么是ip 地址.
能夠在網絡上唯一表示1臺計算的編號就是ip地址了, 這個大家都懂.
在同1層網絡中, 每臺主機都必須有1個唯一的ip地址.
ip地址是1個邏輯地址.
三. 數據是怎樣在網絡上傳輸的.
例如計算機A發送1張照片給計算機B, 那么這張照片是如何在網絡傳輸的.
首先, 網絡上傳輸的都是二進制數據, 所以一張照片是不能在網線上傳輸的.
通常來講, 發送端程序會將這照片轉化成字節數組, 然后把這個字節數組打包成若干個數據包(DatagramPacket).
然后把數據包1個1個地放向給B程序. B程序接收到數據包后再解封, 得到字節數組, 再還原成1張圖片.
所以實際上網絡上的數據是1個接1個的數據包在傳輸!
四. 什么端口號(Port)
一臺計算機可以同時運行多個網絡程序.
例如計算B同時運行著firefox 和 pidigin. B的網卡接受到計算機A的數據包, 那么B會將這個數據包分給Firefox 還是 Pidgin來處理?
為了解決這個問題, 就需要1個標簽. 在同1臺計算機(B)中, 每1個網絡程序都必須分配1個唯一的標簽.
例如Firefox 的標簽是80,?? Pidgin的標簽是9000.
而同樣地, 計算機A發送數據包前, 必須為數據包貼上1個標簽, 表示將這個數據包發給目標計算的哪個程序.
這個標簽實際上是端口號碼(port).
假如B網卡接受到1個數據包, 發現該數據包貼上的標簽是80, 就會交給本地占用80端口的程序(Firefox).
所以計算A發送數據包前, 必須同時指定數據包的目標pid地址, 和目標程序(端口).
端口1個用16bit數字來表示的, 它的范圍是0 ~ 65535, 1024 以下的端口保留給預定義的服務, 例如80是網頁, 25是郵件發送.
oracle的默認端口是1521, tomcat默認的端口是8080.
一個防火墻開放了1個端口(例如8888), 并不是在墻上打開1個洞, 而是這個防火墻不會過濾掉 端口是8888的數據包!
五.協議
一.協議定義:
???? 為進行網絡中的數據交換(通信)而建立的規則,標準或約定.
二. 常見協議
UDP: UDP協議是無連接的, 不可靠的傳輸協議, 類似與寫信.
???? 通俗來講, 計算機A(發送方) 不會 關心 計算機B(接收方)的狀態, 直接地把數據包發送出去.
???? 也就是當計算機B不在線時, 數據包可能會被丟失.
TCP: 面向連接的可靠傳輸協議, 類似與打電話.
???? 也就是所計算機A(發送方) 必須在發送數據包前 建立一條與計算B(接受方的) 連接請求, 在這條連接建立后, 才可以發送數據. 保證每個數據包都成功地發送到計算機B.
6. 套接字(Socket)
單屏名字很難理解.
實際上Socket是美國伯克利大學在Unix上推出的1個工具, 程序猿使用這個工具可以很方便地訪問TCP/IP. 從而開發各種網絡程序.
隨著Unix的推廣, windows和java也引用了Socket這個編程模型.
下一遍文章會詳細講解基于Socket的UDP編程.
總結
以上是生活随笔為你收集整理的Java Web 编程入门知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java print流简介
- 下一篇: Java UDP 编程简介.