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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java Web 编程入门知识

發(fā)布時(shí)間:2025/3/20 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Web 编程入门知识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java SE 的內(nèi)容基本都講完了.


但是 Java一般用于網(wǎng)絡(luò)編程, 就是所謂的web編程. Java SE講的基本上都是本地程序的內(nèi)容.?

而Java web編程需要在兩個(gè)程序中傳輸數(shù)據(jù), 以后就是Java EE的前提知識(shí)了.


一. 什么是網(wǎng)絡(luò)程序(Web Program)

以前Java SE 的內(nèi)容將的都是java 或 面向?qū)ο蟮幕局R(shí), 所編寫的程序都是本地程序.

那么什么是網(wǎng)絡(luò)程序呢.


定義很簡(jiǎn)單:

???? 能夠接受另一臺(tái)計(jì)算機(jī)發(fā)過(guò)來(lái)的的數(shù)據(jù)或者能夠向另1臺(tái)計(jì)算機(jī)發(fā)送數(shù)據(jù)的程序就是網(wǎng)絡(luò)程序.


為什么要強(qiáng)調(diào)另一臺(tái)計(jì)算機(jī)呢,

因?yàn)樵谕慌_(tái)計(jì)算中兩個(gè)程序有很多方法互相通信(例如互相讀寫同1個(gè)本地文件), 但是這兩個(gè)程序就不一定是網(wǎng)絡(luò)程序了.


二. 什么是ip 地址.

能夠在網(wǎng)絡(luò)上唯一表示1臺(tái)計(jì)算的編號(hào)就是ip地址了, 這個(gè)大家都懂.

在同1層網(wǎng)絡(luò)中, 每臺(tái)主機(jī)都必須有1個(gè)唯一的ip地址.

ip地址是1個(gè)邏輯地址.



三. 數(shù)據(jù)是怎樣在網(wǎng)絡(luò)上傳輸?shù)?

例如計(jì)算機(jī)A發(fā)送1張照片給計(jì)算機(jī)B, 那么這張照片是如何在網(wǎng)絡(luò)傳輸?shù)?


首先, 網(wǎng)絡(luò)上傳輸?shù)亩际嵌M(jìn)制數(shù)據(jù), 所以一張照片是不能在網(wǎng)線上傳輸?shù)?

通常來(lái)講, 發(fā)送端程序會(huì)將這照片轉(zhuǎn)化成字節(jié)數(shù)組, 然后把這個(gè)字節(jié)數(shù)組打包成若干個(gè)數(shù)據(jù)包(DatagramPacket).


然后把數(shù)據(jù)包1個(gè)1個(gè)地放向給B程序. B程序接收到數(shù)據(jù)包后再解封, 得到字節(jié)數(shù)組, 再還原成1張圖片.

所以實(shí)際上網(wǎng)絡(luò)上的數(shù)據(jù)是1個(gè)接1個(gè)的數(shù)據(jù)包在傳輸!

四. 什么端口號(hào)(Port)

一臺(tái)計(jì)算機(jī)可以同時(shí)運(yùn)行多個(gè)網(wǎng)絡(luò)程序.

例如計(jì)算B同時(shí)運(yùn)行著firefox 和 pidigin. B的網(wǎng)卡接受到計(jì)算機(jī)A的數(shù)據(jù)包, 那么B會(huì)將這個(gè)數(shù)據(jù)包分給Firefox 還是 Pidgin來(lái)處理?


為了解決這個(gè)問(wèn)題, 就需要1個(gè)標(biāo)簽. 在同1臺(tái)計(jì)算機(jī)(B)中, 每1個(gè)網(wǎng)絡(luò)程序都必須分配1個(gè)唯一的標(biāo)簽.

例如Firefox 的標(biāo)簽是80,?? Pidgin的標(biāo)簽是9000.


而同樣地, 計(jì)算機(jī)A發(fā)送數(shù)據(jù)包前, 必須為數(shù)據(jù)包貼上1個(gè)標(biāo)簽, 表示將這個(gè)數(shù)據(jù)包發(fā)給目標(biāo)計(jì)算的哪個(gè)程序.


這個(gè)標(biāo)簽實(shí)際上是端口號(hào)碼(port).


假如B網(wǎng)卡接受到1個(gè)數(shù)據(jù)包, 發(fā)現(xiàn)該數(shù)據(jù)包貼上的標(biāo)簽是80, 就會(huì)交給本地占用80端口的程序(Firefox).


所以計(jì)算A發(fā)送數(shù)據(jù)包前, 必須同時(shí)指定數(shù)據(jù)包的目標(biāo)pid地址, 和目標(biāo)程序(端口).


端口1個(gè)用16bit數(shù)字來(lái)表示的, 它的范圍是0 ~ 65535, 1024 以下的端口保留給預(yù)定義的服務(wù), 例如80是網(wǎng)頁(yè), 25是郵件發(fā)送.

oracle的默認(rèn)端口是1521, tomcat默認(rèn)的端口是8080.


一個(gè)防火墻開放了1個(gè)端口(例如8888), 并不是在墻上打開1個(gè)洞, 而是這個(gè)防火墻不會(huì)過(guò)濾掉 端口是8888的數(shù)據(jù)包!


五.協(xié)議

一.協(xié)議定義:

???? 為進(jìn)行網(wǎng)絡(luò)中的數(shù)據(jù)交換(通信)而建立的規(guī)則,標(biāo)準(zhǔn)或約定.


二. 常見協(xié)議

UDP: UDP協(xié)議是無(wú)連接的, 不可靠的傳輸協(xié)議, 類似與寫信.

???? 通俗來(lái)講, 計(jì)算機(jī)A(發(fā)送方) 不會(huì) 關(guān)心 計(jì)算機(jī)B(接收方)的狀態(tài), 直接地把數(shù)據(jù)包發(fā)送出去.

???? 也就是當(dāng)計(jì)算機(jī)B不在線時(shí), 數(shù)據(jù)包可能會(huì)被丟失.


TCP: 面向連接的可靠傳輸協(xié)議, 類似與打電話.

???? 也就是所計(jì)算機(jī)A(發(fā)送方) 必須在發(fā)送數(shù)據(jù)包前 建立一條與計(jì)算B(接受方的) 連接請(qǐng)求, 在這條連接建立后, 才可以發(fā)送數(shù)據(jù). 保證每個(gè)數(shù)據(jù)包都成功地發(fā)送到計(jì)算機(jī)B.


6. 套接字(Socket)

單屏名字很難理解.


實(shí)際上Socket是美國(guó)伯克利大學(xué)在Unix上推出的1個(gè)工具, 程序猿使用這個(gè)工具可以很方便地訪問(wèn)TCP/IP. 從而開發(fā)各種網(wǎng)絡(luò)程序.

隨著Unix的推廣, windows和java也引用了Socket這個(gè)編程模型.


下一遍文章會(huì)詳細(xì)講解基于Socket的UDP編程.



總結(jié)

以上是生活随笔為你收集整理的Java Web 编程入门知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。