本書內容共分為3部分。第1部分講解Java程序設計的基礎知識,包括Java的簡單數據及程序流程式控制制、面向對象設計思想、類、對象、介面、異常處理以及標准類庫等內容;第2部分講解Java程序設計的一般知識,包括GUl編程、輸入輸出設計、資料庫訪問以及多線程編程等內容;第3部分講解Java網路程序設計的高級知識,包括Java安全、JavaBean組件、套接字編程、Java網路編程(涉及Servlet/JSP技術)以及Java EE和Java ME等內容。在本書的第2版中,圖形編程和Web編程(JavaEE流行框架)部分得到了補充和完善。
本書重點放在Java程序設計語言基礎以及Java網路編程技術上,同時力求重點突出,覆蓋面廣。各章均提供了豐富的實例和練習,並將在網上提供相應內容的多媒體課件(PPT格式)。全書由淺入深、實例生動、易學易用,可以滿足不同層次讀者的需求。本書可作為普通高等院校應用型本科(含部分高職高專)相關專業的程序設計教材,也可作為軟體開發人員的參考書。
⑵ Java網路編程基本概念是什麼
1、Java網路編程基本概念——主機的網路層
主機網路層定義特定網路介面(如乙太網或WiFi天線)如何通過物理連接將IP數據報發送到本地網路或世界其他地方。在主機網路層中,連接不同計算機的硬體部分(電纜、光纖、無線電波或煙霧信號)有時被稱為網路的物理層。Java程序員不需要擔心這一層,除非出現錯誤,例如計算機後面的插頭脫落或有人切斷了您與外部世界之間的T-1線。換句話說,Java將永遠看不到物理層。
2、Java網路編程基本概念——網路層
Internet層的下一層是主機網路層,這是Java程序員需要考慮的第一層。網際網路層協議定義了數據位和位元組如何組織成更大的組,稱為包,也定義了不同計算機互相查找的定址機制。Internet Protocol (IP)是世界上使用最廣泛的Internet層協議,也是Java唯一了解的Internet層協議。
網際網路協議基本上是兩種協議:IPV4使用32位地址,IPV6使用128位地址,並增加了技術特性來幫助路由。這是兩種完全不同的網路協議,如果沒有特殊的網關/隧道協議,它們甚至不能在同一網路上互操作,但是Java向您隱藏了幾乎所有這些差異。
除了路由和定址之外,網際網路層的第二個作用是使不同類型的主機網路層能夠彼此對話。網際網路路由器在WiFi和乙太網、乙太網和DSL、DSL和光纖往返協議之間進行交換。沒有網際網路層或類似的分層,每台計算機只能與同一類型網路上的其他計算機通信。網際網路層負責使用適當的協議將異類網路彼此連接起來。
3、Java網路編程基本概念——傳輸層
原始數據報有一些缺點。最明顯的缺點是無法保證可靠的傳輸,即使可以保證,也可能在傳輸過程中被損壞。頭檢查只能檢測頭中的損壞,而不能檢測數據報的數據部分。最後,即使數據報沒有損壞地到達了它的目的地,它也可能不能按照發送的順序到達。
傳輸層負責確保按發送的順序接收數據包,確保沒有數據丟失或銷毀。如果數據包丟失,傳輸層要求發送方重新傳輸該數據包。為此,IP網路向每個數據報添加了一個額外的頭,其中包含更多信息。
這個級別有兩個主要協議。第一個是傳輸控制協議(TCP),這是一個昂貴的協議,允許丟失或損壞的數據按照發送順序重新傳輸。第二個協議是用戶數據報協議(User Datagram Protocol, UDP),它允許接收方檢測損壞的數據包,而不保證它們按照正確的順序發送(或者根本不發送)。然而,UDP通常比TCP快。TCP被稱為可靠協議。UDP是不可靠的。
4、Java網路編程基本概念——應用程序層
向用戶交付數據的層稱為應用層。以下三個層定義如何將數據從一台計算機傳輸到另一台計算機。應用層決定數據傳輸後的操作。有HTTP為用戶Web, SMTP, POP, IMAP為用戶電子郵件;FSP, TFTP用於文件傳輸,NFS用於文件訪問;文件共享使用Gnutella和BitTorrent;會話發起協議(SIP)和Skype用於語音通信。此外,您的程序可以在必要時定義自己的應用程序級協議。(頁面)
5、Java網路編程基本概念——IP、TCP、UDP
IP被設計成允許任意兩點之間有多條路由,繞過損壞的路由器來路由數據包。由於兩點之間有多條路由,而且由於網路流量或其他因素,它們之間的最短路徑可能會隨著時間而變化,因此構成特定數據流的數據包可能不會走同一條路由。即使它們全部到達,也可能不是按照它們被發送的順序到達的。為了改進這一基本機制,TCP被放置在IP上,以便連接的兩端可以確認收到的IP數據包,並請求重傳丟失或損壞的數據包。此外,TCP允許接收端上的數據包按照發送的順序重新分組。
然而,TCP有很多開銷。因此,如果單個數據包的丟失不會完全破壞數據,那麼可以使用UDP發送數據包,而不需要TCP提供的保證。UDP是一種不可靠的協議。它不能保證信息包將到達它們的目的地,或者它們將以它們被發送的相同順序到達。
6、Java網路編程基本概念——IP地址和域名
IPv4網路上的每台計算機都有一個4位元組的數字ID。通常在一個點上以四段格式寫,比如192.1.32.90,每個數字是一個無符號位元組,范圍從0到255。IPv4網路上的每台計算機都有一個唯一的四段地址。當數據通過網路傳輸時,包的報頭包括要發送到的機器的地址(目的地址)和要發送到的機器的地址(源地址)。路由上的路由器通過檢查目的地址來選擇發送包的最佳路徑。包含源地址是為了讓收件人知道該對誰進行回復。
雖然計算機可以很容易地處理數字,但人類並不擅長記住它們。因此,域名系統(DNS)被開發出來,用來將容易記住的主機名(如www.12345.com)轉換成數字互聯網地址(如208.201.243.99)。當Java程序訪問網路時,它們需要同時處理數字地址和相應的主機名。這些方法由java.net.InetAddress類提供。
7、Java網路編程基本概念——港口
如果每台計算機一次只做一件事,地址就足夠了。但是現代計算機同時做許多不同的事情。電子郵件需要與FTP請求分開,而FTP請求也需要與Web通信分開。這是通過埠完成的。具有IP地址的每台計算機有數千個邏輯埠(確切地說,每個傳輸層協議有65,535個埠)。這些只是計算機內存中的抽象,不代表任何物理對象,不像USB埠。每個埠在1到65535之間進行數字標識。每個埠可以分配給一個特定的服務。
8、Java網路編程基本概念——一個防火牆
在互聯網上有一些頑皮的人。要排除它們,通常需要在本地網路上設置一個接入點,並檢查進出該接入點的所有流量。位於網際網路和本地網路之間的一些硬體和軟體會檢查所有輸入和輸出的數據,以確保它是防火牆。防火牆通常是路由器的一部分,它將本地網路連接到更大的網際網路,並可以執行其他任務,如網路地址轉換。另外,防火牆可以是單獨的機器。防火牆仍然主要負責檢查進出其網路介面的數據包,根據一組規則接收或拒絕數據包。
本篇《什麼是Java網路編程基本概念?看完這篇文章你一定可以明白》到這里就已經結束了,小編一直認為,某一個編程軟體受歡迎是有一定原因的,首先吸引人的一定是其功能,環球網校的小編祝您java學習之路順利,如果你還想知道更多java知識,也可以點擊本站的其他文章進行學習。
⑶ java網路編程( Socket編程的基本應用 )
Java網路編程中Socket編程的基本應用主要包括以下幾點:
TCP Socket編程:
UDP Socket編程:
多播數據報套接字編程:
通過以上基本應用,Java網路編程者能夠實現TCP和UDP以及多播環境下的數據傳輸,從而滿足各種網路通信需求。
⑷ java網路技術編程
一、 客戶端網路編程步驟
客戶端(Client)是指網路編程中首先發起連接的程序,客戶端一般實現程序界面和基本邏輯實現,在進行實際的客戶端編程時,無論客戶端復雜還是簡單,以及客戶端實現的方式,客戶端的編程主要由三個步驟實現:
1、 建立網路連接
客戶端網路編程的第一步都是建立網路連接。在建立網路連接時需要指定連接到的伺服器的IP地址和埠號,建立完成以後,會形成一條虛擬的連接,後續的操作就可以通過該連接實現數據交換了。
2、 交換數據
連接建立以後,就可以通過這個連接交換數據了。交換數據嚴格按照請求響應模型進行,由客戶端發送一個請求數據到伺服器,伺服器反饋一個響應數據給客戶端,如果客戶端不發送請求則伺服器端就不響應。
根據邏輯需要,可以多次交換數據,但是還是必須遵循請求響應模型。
3、 關閉網路連接
在數據交換完成以後,關閉網路連接,釋放程序佔用的埠、內存等系統資源,結束網路編程。
最基本的步驟一般都是這三個步驟,在實際實現時,步驟2會出現重復,在進行代碼組織時,由於網路編程是比較耗時的操作,所以一般開啟專門的現場進行網路通訊。
二、伺服器端網路編程步驟
伺服器端(Server)是指在網路編程中被動等待連接的程序,伺服器端一般實現程序的核心邏輯以及數據存儲等核心功能。伺服器端的編程步驟和客戶端不同,是由四個步驟實現,依次是:
1、 監聽埠
伺服器端屬於被動等待連接,所以伺服器端啟動以後,不需要發起連接,而只需要監聽本地計算機的某個固定埠即可。
這個埠就是伺服器端開放給客戶端的埠,伺服器端程序運行的本地計算機的IP地址就是伺服器端程序的IP地址。
2、 獲得連接
當客戶端連接到伺服器端時,伺服器端就可以獲得一個連接,這個連接包含客戶端的信息,例如客戶端IP地址等等,伺服器端和客戶端也通過該連接進行數據交換。
一般在伺服器端編程中,當獲得連接時,需要開啟專門的線程處理該連接,每個連接都由獨立的線程實現。
3、 交換數據
伺服器端通過獲得的連接進行數據交換。伺服器端的數據交換步驟是首先接收客戶端發送過來的數據,然後進行邏輯處理,再把處理以後的結果數據發送給客戶端。簡單來說,就是先接收再發送,這個和客戶端的數據交換數序不同。
其實,伺服器端獲得的連接和客戶端連接是一樣的,只是數據交換的步驟不同。
當然,伺服器端的數據交換也是可以多次進行的。
在數據交換完成以後,關閉和客戶端的連接。
4、 關閉連接
當伺服器程序關閉時,需要關閉伺服器端,通過關閉伺服器端使得伺服器監聽的埠以及佔用的內存可以釋放出來,實現了連接的關閉。
其實伺服器端編程的模型和呼叫中心的實現是類似的,例如移動的客服電話10086就是典型的呼叫中心,當一個用戶撥打10086時,轉接給一個專門的客服人員,由該客服實現和該用戶的問題解決,當另外一個用戶撥打10086時,則轉接給另一個客服,實現問題解決,依次類推。
在伺服器端編程時,10086這個電話號碼就類似於伺服器端的埠號碼,每個用戶就相當於一個客戶端程序,每個客服人員就相當於伺服器端啟動的專門和客戶端連接的線程,每個線程都是獨立進行交互的。
這就是伺服器端編程的模型,只是TCP方式是需要建立連接的,對於伺服器端的壓力比較大,而UDP是不需要建立連接的,對於伺服器端的壓力比較小罷了。
⑸ Java網路編程精解作者簡介
孫衛琴,一位傑出的IT女性作家,於1997年畢業於上海交通大學。她的專業背景深厚,擁有豐富的Java軟體開發經驗,曾涉足J2EE培訓和咨詢領域。自2002年出版她的首部作品以來,孫衛琴一直以其女性特有的視角和細膩的筆觸,專注於開源技術圖書的創作,為讀者們帶來了獨到的見解。
2004年,是孫衛琴的創作高峰期,這一年對於Java開源技術圖書市場來說也是亮點頻出。她所著的《精通Struts:基於MVC的JavaWeb設計與開發》和《Tomcat與JavaWeb開發技術詳解》兩部作品,以專業的內容和深度,贏得了市場的熱烈反響。這兩本書在2004年上市後,反響熱烈,多次印刷,至2007年9月,已超過10次印刷,顯示出極高的市場認可度和需求量。
值得一提的是,這兩本專業性強的圖書不僅收獲了廣大讀者的好評,還在競爭激烈的IT圖書市場中取得了空前的成功,這在當時實屬罕見,充分證明了孫衛琴在Java網路編程領域的深厚造詣和獨特貢獻。
《Java網路編程精解》結合大量的典型實例,詳細介紹了用Java來編寫網路應用程序的技術。《Java網路編程精解》的範例都基於最新的JDK1.5版本,書中內容包括:Java網路編程的基礎知識、套接字編程、非阻塞通信、創建HTTP伺服器與客戶程序、數據報通信、對象的序列化與反序列化、.Java反射機制、RMI框架、JDBCAPI、JavaMailAPI、MVC設計模式、安全網路通信、CORBA和Web服務。另外,《Java網路編程精解》還涵蓋了Sun公司的SCJD(sunCertiffedJavaDeveloper)認證的考試要點。
⑹ Java網路編程精解的目錄
第1章 Java網路編程入門 1
1.1 進程之間的通信 1
1.2 計算機網路的概念 3
1.3 OSI參考模型 5
1.4 TCP/IP參考模型和TCP/IP協議 8
1.4.1 IP協議 11
1.4.2 TCP協議及埠 14
1.4.3 RFC簡介 15
1.4.4 客戶/伺服器通信模式 16
1.5 用Java編寫客戶/伺服器程序 17
1.5.1 創建EchoServer 18
1.5.2 創建EchoClient 20
1.6 小結 22
1.7 練習題 23
第2章 Socket用法詳解 25
2.1 構造Socket 25
2.1.1 設定等待建立連接的超時時間 26
2.1.2 設定伺服器的地址 26
2.1.3 設定客戶端的地址 27
2.1.4 客戶連接伺服器時可能拋出的異常 27
2.2 獲取Socket的信息 30
2.3 關閉Socket 32
2.4 半關閉Socket 33
2.5 設置Socket的選項 38
2.5.1 TCP_NODELAY選項 38
2.5.2 SO_RESUSEADDR選項 38
2.5.3 SO_TIMEOUT選項 39
2.5.4 SO_LINGER選項 42
2.5.5 SO_RCVBUF選項 44
2.5.6 SO_SNDBUF選項 45
2.5.7 SO_KEEPALIVE選項 45
2.5.8 OOBINLINE選項 45
2.5.9 服務類型選項 45
2.5.10 設定連接時間、延遲和帶寬的相對重要性 46
2.6 發送郵件的SMTP客戶程序 47
2.7 小結 51
2.8 練習題 52
第3章 ServerSocket用法詳解 55
3.1 構造ServerSocket 55
3.1.1 綁定埠 55
3.1.2 設定客戶連接請求隊列的長度 56
3.1.3 設定綁定的IP地址 58
3.1.4 默認構造方法的作用 58
3.2 接收和關閉與客戶的連接 59
3.3 關閉ServerSocket 60
3.4 獲取ServerSocket的信息 60
3.5 ServerSocket選項 62
3.5.1 SO_TIMEOUT選項 62
3.5.2 SO_REUSEADDR選項 63
3.5.3 SO_RCVBUF選項 64
3.5.4 設定連接時間、延遲和帶寬的相對重要性 64
3.6 創建多線程的伺服器 65
3.6.1 為每個客戶分配一個線程 65
3.6.2 創建線程池 67
3.6.3 使用JDK類庫提供的線程池 72
3.6.4 使用線程池的注意事項 74
3.7 關閉伺服器 76
3.8 小結 80
3.9 練習題 81
第4章 非阻塞通信 83
4.1 線程阻塞的概念 83
4.1.1 線程阻塞的原因 83
4.1.2 伺服器程序用多線程處理阻塞通信的局限 84
4.1.3 非阻塞通信的基本思想 85
4.2 java.nio包中的主要類 87
4.2.1 緩沖區Buffer 88
4.2.2 字元編碼Charset 90
4.2.3 通道Channel 90
4.2.4 SelectableChannel類 92
4.2.5 ServerSocketChannel類 93
4.2.6 SocketChannel類 93
4.2.7 Selector類 96
4.2.8 SelectionKey類 97
4.3 伺服器編程範例 100
4.3.1 創建阻塞的EchoServer 100
4.3.2 創建非阻塞的EchoServer 103
4.3.3 在EchoServer中混合用阻塞模式與非阻塞模式 110
4.4 客戶端編程範例 114
4.4.1 創建阻塞的EchoClient 114
4.4.2 創建非阻塞的EchoClient 116
4.4.3 創建非阻塞的PingClient 120
4.5 小結 126
4.6 練習題 127
第5章 創建非阻塞的HTTP伺服器 129
5.1 HTTP協議簡介 129
5.1.1 HTTP請求格式 129
5.1.2 HTTP響應格式 132
5.1.3 測試HTTP請求 133
5.2 創建非阻塞的HTTP伺服器 137
5.2.1 伺服器主程序:
HttpServer類 137
5.2.2 具有自動增長的緩沖區的ChannelIO類 138
5.2.3 負責處理各種事件的
Handler介面 140
5.2.4 負責處理接收連接就緒
事件的AcceptHandler類 140
5.2.5 負責接收HTTP請求和發送HTTP響應的RequestHandler類 141
5.2.6 代表HTTP請求的Request類 143
5.2.7 代表HTTP響應的Response類 145
5.2.8 代表響應正文的Content介面及其實現類 147
5.2.9 運行HTTP伺服器 149
5.3 小結 150
5.4 練習題 151
第6章 客戶端協議處理框架 153
6.1 客戶端協議處理框架的主要類 153
6.2 在客戶程序中運用協議處理框架 154
6.2.1 URL類的用法 154
6.2.2 URLConnection類的用法 156
6.3 實現協議處理框架 160
6.3.1 創建EchoURLConnection類 161
6.3.2 創建EchoURLStreamHandler及工廠類 162
6.3.3 創建EchoContentHandler類及工廠類 163
6.3.4 在EchoClient類中運用ECHO協議處理框架 165
6.4 小結 166
6.5 練習題 167
第7章 用Swing組件展示HTML文檔 169
7.1 在按鈕等組件上展示HTML文檔 170
7.2 用JEditorPane組件創建簡單的瀏覽器 171
7.3 小結 179
7.4 練習題 179
第8章 基於UDP的
數據報和套接字 181
8.1 UDP協議簡介 181
8.2 DatagramPacket類 184
8.2.1 選擇數據報的大小 185
8.2.2 讀取和設置DatagramPacket的屬性 185
8.2.3 數據格式的轉換 186
8.2.4 重用DatagramPacket 187
8.3 DatagramSocket類 189
8.3.1 構造DatagramSocket 189
8.3.2 接收和發送數據報 190
8.3.3 管理連接 190
8.3.4 關閉DatagramSocket 191
8.3.5 DatagramSocket的選項 191
8.3.6 IP服務類型選項 193
8.4 DatagramChannel類 193
8.4.1 創建DatagramChannel 194
8.4.2 管理連接 194
8.4.3 用send()方法發送數據報 194
8.4.4 用receive()方法接收數據報 195
8.4.5 用write()方法發送數據報 198
8.4.6 用read()方法接收數據報 199
8.5 組播Socket 202
8.5.1 MulticastSocket類 205
8.5.2 組播Socket的範例 207
8.6 小結 209
8.7 練習題 210
第9章 對象的序列化與反序列化 213
9.1 JDK類庫中的序列化API 213
9.2 實現Serializable介面 218
9.2.1 序列化對象圖 220
9.2.2 控制序列化的行為 222
9.2.3 readResolve()方法在單例類中的運用 229
9.3 實現Externalizable介面 231
9.4 可序列化類的不同版本的序列化兼容性 233
9.5 小結 235
9.6 練習題 236
第10章 Java語言的反射機制 239
10.1 Java Reflection API簡介 239
10.2 在遠程方法調用中運用反射機制 244
10.3 代理模式 248
10.3.1 靜態代理類 248
10.3.2 動態代理類 250
10.3.3 在遠程方法調用中
運用代理類 253
10.4 小結 258
10.5 練習題 259
第11章 RMI框架 261
11.1 RMI的基本原理 262
11.2 創建第一個RMI應用 264
11.2.1 創建遠程介面 264
11.2.2 創建遠程類 265
11.2.3 創建伺服器程序 267
11.2.4 創建客戶程序 269
11.2.5 運行RMI應用 270
11.3 遠程對象工廠設計模式 272
11.4 遠程方法中的參數與返回值傳遞 277
11.5 回調客戶端的遠程對象 281
11.6 遠程對象的並發訪問 286
11.7 分布式垃圾收集 289
11.8 遠程對象的equals()、hashCode()和clone()方法 294
11.9 使用安全管理器 294
11.10 RMI應用的部署及類的動態載入 295
11.11 遠程激活 297
11.12 小結 303
11.13 練習題 304
第12章 通過JDBC API訪問資料庫 305
12.1 JDBC的實現原理 306
12.2 安裝和配置MySQL資料庫 308
12.3 JDBC API簡介 310
12.4 JDBC API的基本用法 314
12.4.1 處理字元編碼的轉換 317
12.4.2 把連接資料庫的各種屬性放在配置文件中 318
12.4.3 管理Connection、Statement和ResultSet對象的生命周期 321
12.4.4 執行SQL腳本文件 326
12.4.5 處理SQLException 328
12.4.6 輸出JDBC日誌 329
12.4.7 獲得新插入記錄的主鍵值 329
12.4.8 設置批量抓取屬性 330
12.4.9 檢測驅動器使用的JDBC版本 330
12.4.10 元數據 331
12.5 可滾動及可更新的結果集 333
12.6 行集 339
12.7 調用存儲過程 346
12.8 處理Blob和Clob類型數據 347
12.9 控制事務 351
12.9.1 事務的概念 351
12.9.2 聲明事務邊界的概念 353
12.9.3 在mysql.exe程序中聲明事務 354
12.9.4 通過JDBC API聲明事務邊界 356
12.9.5 保存點 357
12.9.6 批量更新 358
12.9.7 設置事務隔離級別 360
12.10 資料庫連接池 362
12.10.1 創建連接池 363
12.10.2 DataSource數據源 369
12.11 小結 371
12.12 練習題 372
第13章 基於MVC和RMI的分布式應用 375
13.1 MVC設計模式簡介 375
13.2 store應用簡介 377
13.3 創建視圖 381
13.4 創建控制器 389
13.5 創建模型 390
13.6 創建獨立應用 394
13.7 創建分布式應用 395
13.8 小結 398
13.9 練習題 398
第14章 通過JavaMail API收發郵件 401
14.1 E-mail協議簡介 401
14.1.1 SMTP簡單郵件傳輸協議 401
14.1.2 POP3郵局協議 402
14.1.3 接收郵件的新協議IMAP 402
14.1.4 MIME簡介 403
14.2 JavaMail API簡介 403
14.3 建立JavaMail應用程序的開發環境 405
14.3.1 獲得JavaMail API的類庫 405
14.3.2 安裝和配置郵件伺服器 406
14.4 創建JavaMail應用程序 408
14.5 身份驗證 412
14.6 URLName類 416
14.7 創建和讀取復雜電子郵件 418
14.7.1 郵件地址 419
14.7.2 郵件頭部 420
14.7.3 郵件標記 421
14.7.4 郵件正文 422
14.8 操縱郵件夾 427
14.9 小結 432
14.10 練習題 433
第15章 安全網路通信 435
15.1 SSL簡介 435
15.1.1 加密通信 436
15.1.2 安全證書 436
15.1.3 SSL握手 437
15.1.4 創建自我簽名的安全證書 438
15.2 JSSE簡介 439
15.2.1 KeyStore、KeyManager與TrustManager類 442
15.2.2 SSLContext類 443
15.2.3 SSLServerSocketFactory類 444
15.2.4 SSLSocketFactory類 444
15.2.5 SSLSocket類 444
15.2.6 SSLServerSocket類 447
15.2.7 SSLEngine類 448
15.3 創建基於SSL的安全伺服器和安全客戶 453
15.4 小結 457
15.5 練習題 457
第16章 CORBA簡介 459
16.1 創建IDL介面 460
16.2 創建IDL介面的實現類 460
16.3 創建伺服器程序 461
16.4 創建客戶程序 462
16.5 運行CORBA程序 463
16.6 小結 464
16.7 練習題 465
第17章 Web服務簡介 467
17.1 SOAP簡介 467
17.2 建立Apache AXIS環境 469
17.3 在Tomcat上發布
Apache-AXIS Web應用 470
17.4 創建SOAP服務 471
17.4.1 創建提供SOAP
服務的Java類 471
17.4.2 創建SOAP服務的
發布描述符文件 471
17.5 管理SOAP服務 472
17.5.1 發布SOAP服務 472
17.5.2 刪除SOAP服務 473
17.6 創建和運行SOAP
客戶程序 473
17.7 發布JWS服務 476
17.8 小結 476
17.9 練習題 477
附錄A 本書範例的運行方法 479
A.1 本書所用軟體的下載地址 479
A.2 部分軟體的安裝 479
A.2.1 安裝JDK 480
A.2.2 安裝ANT 480
A.2.3 安裝Tomcat 481
A.3 編譯源程序 481
A.4 運行客戶/伺服器程序 482