關鍵的Java程式語言基礎
完整的Java最新版本程式語言語法,包括物件導向基礎、程式語言觀念、程式撰寫的技巧。特別強調物件導向程式運作的原理,提供爾後學習其他程式語言時能夠輕鬆地接軌。
最佳的JSP學習入門指南
結合網站建置的步驟、網頁內容相關的規則,透過範例的實際練習,一步一步掌握網站互動程式開發與運作的技巧,入門進階一氣呵成。
多元的資料庫網站開發實務
包含SQL Server 2017版本的安裝、操作、建置與移轉的詳細操作。循序配套的JSP資料處理程式解說,包括目錄檔案存取、資料庫內容管理、AJAX即時內容回應,以及符合多數網站所需的檢索功能範例。
教學的經驗回饋與累積
依據多年程式設計教學的經驗,針對學生學習主要癥結加強解說,並加強物件導向特性與觀念之建立,無論是自學或課堂授課,均能有效降低學習的門檻。
本書特色
著重理論與實務兼具,針對實務所需的理論加以介紹,幫助讀者在最短學習時間內建立足夠的概念與理論基礎。
運用經典範例的詳細說明,提供學習者由Java語法的基礎,到熟悉網頁互動程式的核心技巧,並結合微軟SQL Server 2017資料庫的使用,掌握商業網站開發的關鍵能力。
作者簡介:
余顯強
‧學歷:交通大學資訊管理博士
‧現職:世新大學資訊傳播學系/教授
‧曾任:輔仁大學圖書資訊學系/講師、助理教授
世新大學圖書館/館長
鼎盛公司/資深專員
汶康電腦(國際銳浩)公司/經理
所羅門企業/處長
具有20多年資訊系統設計與開發,以及10餘年教學的經驗。專長於資料庫應用、數位典藏、資訊組織與傳播、資訊管理、智慧卡應用等。
章節試閱
第一節 程式語言概論
指示電腦執行某一特定動作的命令稱之為「指令」(Instruction),如果將一連串的指令,按照一定的邏輯順序排列起來,就能指揮電腦完成某一項特定的工作,並達成資料處理的目的。這種按照一定的邏輯程序,有系統有組織加以排列的一群指令,便稱為「程式」(Program)。因此,程式語言是一組用來指示電腦每一步動作的指令語法規則,因此也稱為電腦語言。如圖1-1 所示,依據演進與分類,程式語言可分為高階語言(High Level Language)與低階語言(Low Level Language)兩類;低階程式語言又可再分為機械語言(Machine Language)、組合語言(Assemble Language)兩種。
越高階就代表越接近人類的語言、思維;越低階就越接近電腦的思維。簡單的說,越高階可讀性越高,也就是人類越容易看得懂,因此程式較容易除錯與維護;而越低階表示越接近電腦實際運作的機械碼,因此可讀性低、不易除錯與維護,但相對的執行效率高。
一、 機械語言
是由一定個數的0 與1 組合而成的語言,是電腦能夠接受,可以直接命令電腦工作的語言。在電腦中所有可以執行的程式(如*.EXE, *.COM)幾乎都是由二進位程式碼所組成。因為其偏向於機器的自然結構,與人類的語言用語差異很大,故歸類稱之為低階語言。
二、 組合語言
利用簡單且有意義的英文縮寫來代替機械語言。電腦無法直接" 瞭解" 使用組合語言所撰寫的程式,必須再利用組譯程式(Assembler)將之轉換成相對應的機械語言,才能提供電腦執行。要學習組合語言,要先了解電腦的基本架構,像是 CPU、暫存器組、記憶體定址⋯等等,屬於偏軟體的電腦硬體架構。
三、 高階語言
最接近人類思維與詞句的語言,容易撰寫與閱讀,且又能夠在各種不同電腦中使用的語言。高階語言無法直接與電腦溝通,必須透過解譯器(Interpreter)或編譯器(Compiler)的程式將之轉換成相對應的機械語言,電腦才能執行。
如果執行的程式有問題,就必須加以檢查是否有錯誤,並加以修正,一直到程式的結果符合預期的目的為止,這個檢查/ 修正的過程便稱為除錯(Debug)。
第二節 Java 內涵
一、 源起
Java 是昇陽(Sun Microsystems)公司由James Gosling 和同事們共同研發的一套跨平臺物件導向程式語言。後來昇陽公司於2009 年4 月被資料庫大廠:甲骨文(Oracle)公司併購,所以現在Java 屬於Oracle 公司所有。
• 起源:誕生在1990年初期,初期命名為橡樹(Oak)。後因Oak 已被註冊故改名為Java,並於1995 年5 月23 日正式推出。
• 目的:開發攜帶型消費性電子產品(PDA、手機、家用電器用品)。
• 特性:跨平臺、網路連結容易、安全性高、很小系統既可執行(如Java 晶片執行類別)
二、 Java平臺(Platform,也就是執行環境)的組成元件
虛擬機器(Java Virtual Machine,JVM)和Java API構成了Java的平臺。
JVM為Java程式提供了一個與作業系統溝通的橋梁,因此不同的作業系統當然會有不同的JVM,但由於Java程式不用直接面對不同作業系統核心之間運作的差異,所以Java程式可以只需編譯一次,就可以在各種不同作業系統之中正常執行。Java應用程式設計介面為Java應用提供了一個獨立於作業系統的標準介面。在硬體或作業系統上安裝一個Java平臺之後,Java應用程式就可運行。幾乎大部分的作業系統都已經內嵌Java平臺。
三、 Java 相關技術
由於電腦應用的用途非常多元,所以Java 也因為使用的目的,或平臺的種類不同(例如手機、網站、視窗應用程式⋯等)分成不同的程式類型。
• Java application:可在各種作業系統執行的應用程式。要安裝相對應的JVM。
• Java applet:可以下載並在瀏覽器上執行的程式。
• Java servlet:伺服器端執行Java應用程式,輸出可以在瀏覽器上呈現結果的關鍵元件。
四、 Java 平臺類型
分為三個體系Java SE(Java2 Platform Standard Edition,Java 平臺標準版),Java EE(Java 2 Platform Enterprise Edition,Java 平臺企業版),Java ME(Java 2 Platform Micro Edition,Java 平臺微型版)。
•Java SE。Java SE 原先稱為J2SE。它允許開發和部署在視窗、伺服器、嵌入式(Embedding)環境和即時(Realtime)環境中使用的Java 應用程式。Java SE 包含了支援Java Web 服務開發的類別。
• Java EE。原先稱為J2EE。企業版本幫助開發和部署可移植、強健、彈性且安全的伺服器端Java 應用程式。Java EE 是在Java SE 的基礎上所構建的,它提供Web 服務、元件模型、管理和網路API,可以用來實現企業級的服務導向架構(Service-Oriented Architecture,SOA)和Web 2.0 應用程式。
• Java ME。原先稱為J2ME,也叫K-JAVA。Java ME 為在移動設備和嵌入式設備(例如手機、PDA、電視機上盒和印表機)上運行的應用。Java ME 包括彈性的使用者介面、強健的安全模型、許多內置的網路通訊協定以及對可以動態下載的連網和離線應用程式的豐富支援。如同Java 跨平臺的特性,基於Java ME 規範的應用程式只需編寫一次,就可以執行於許多設備。
第三節 參考資源
學習過程,除了工具書的指引,網路也是一個方便獲得學習資源的管道。此外實際上機練習更是重要。學習最好能從程式語法最基礎的部分開始了解,基礎學習的紮實,到進階時才能駕輕就熟。但是如果時間有限,希望能簡化上機練習的效率,開發工具能夠提供許多簡便的程序,提供便捷的程式編碼方式。因此本節就簡單列出網路資源與開發工具的參考網址,提供學習者參考使用。
一、 參考資源網站
網站的便捷與方便,只要有網路,隨時可以上網依據自己的需要搜尋許多Java的資源,一些較著名的Java資源網站如下:
• 官方網站: http://java.sun.com/
(由於昇陽Sun 於2009 年被Oracle 併購,因此實際的URL 已更換成http://www.oracle.com/technetwork/java/index.html,不過原先昇陽的網址仍舊有保留)
• 台灣Java官方網站: http://www.javatwo.net/
• 技術論壇: http://www.javaworld.com.tw/jute/
• Java 初學電子書: http://docs.oracle.com/javase/tutorial/
二、 Java開發工具
電腦必須具備程式編寫與執行的相關組件,因此學習或開發Java 程式之前,必須在電腦安裝Java程式發展工具組件(Java Development Kit,JDK)。2017年9 月21日發布最新的JDK 9的版本,安裝程式可由甲骨文公司(Oracle)的網站(http://www.oracle.com/technetwork/java/index.html) 取得,支援包括Linux、Solaris、Windows、MAC 等多種作業系統平臺。安裝與設定請參考【附錄A】的說明。
坊間有許多公司機構提供Java的整合開發環境(Integrated Development Environments,IDE), 例如Eclipse、JBuilder、JDeveloper、JCreator、NetBeans,以及開源碼的jEdit、UltraEdit⋯等開發工具。其中常被使用的開發工具為IBM投入數億美金發展的開放軟體(免費工具):Eclipse。其前身是IBM公司開發的Visual Age for Java,2001年11月開放原碼給開源社區(Open Source Community)。Eclipse 除了使用完全免費之外,不僅能夠用來撰寫視窗、網站的應用程式,也是開發Android平臺APP的主要工具之一。下載網址:http://www.eclipse.org/。
第一節 程式語言概論
指示電腦執行某一特定動作的命令稱之為「指令」(Instruction),如果將一連串的指令,按照一定的邏輯順序排列起來,就能指揮電腦完成某一項特定的工作,並達成資料處理的目的。這種按照一定的邏輯程序,有系統有組織加以排列的一群指令,便稱為「程式」(Program)。因此,程式語言是一組用來指示電腦每一步動作的指令語法規則,因此也稱為電腦語言。如圖1-1 所示,依據演進與分類,程式語言可分為高階語言(High Level Language)與低階語言(Low Level Language)兩類;低階程式語言又可再分為機械語言(Machine ...
作者序
多數電腦程式語言專書提供的學習方式,提供許多語法與實例應用的介紹,對於資訊背景強的讀者,能夠快速地入門。但對於許多資訊環境運作的背景卻缺乏介紹,使得學習常常是具備了技術,但少了理由。筆者擔任資訊主管多年,常遇到系統設計師的規劃常常是知其然,不知其所以然,多少便是肇因於電腦專書的介紹過於偏向技術,而缺乏理論的指引。
此外,非資訊背景的讀者在面對複雜的資訊領域環境,常常會有不知從何下手學習的困擾。通常程式語言是一類圖書、網頁是一類圖書、資料庫系統又是一類圖書,如果各別地學習,不僅門檻不低,且常需投入相當時日。筆者學習系統開發的過程,深深感到若能具備各個層面的基礎,再回頭進入更進階的學習,效果將會更好。也就是說,需先掌握程式語言的基礎語法、瞭解網頁的基本觀念、認識資料庫的使用關鍵,就能夠開發出一個大致符合實務應用的網站。有了基礎的實務能力,表示能夠理解了基本的開發邏輯,然後才再進階學習更深一層的程式技巧、系統結構、資料庫應用…等。這樣以面為單位一層一層的堆疊,才能對系統開發具備紮實的能力與認識,甚至面對資訊環境快速的變化,由其中任何一點切出,也比較能快速的掌握其他的資訊應用領域。
此外,學習程式語言或是網站開發,並不一定是要從事這一類的工作才需要學習,除了可以學習程序的觀念、訓練邏輯的思維,還可以應用在與軟體人員的溝通與協調,畢竟能夠掌握資訊運作的基本知識與術語,就能理解軟體人員所表達的。除了溝通之外,也能更進一步的參與專案規劃與管理。畢竟不了解資訊技術,怎麼做好預估? 怎麼掌握進度? 怎麼面對開發的障礙? 這就是現在國際上學習的潮流趨勢,無論你的學科、專業背景,程式語言都被列為基礎能力之一。
程式語言是開發資訊系統運作的基礎;無論資訊應用如何發展,網頁仍是往後數年內最重要的人機介面;不僅現有資訊管理的範疇,還是近年來強調快速、大量、非結構的大數據,也要依靠著資料庫來管理結構化後的資料。因此程式語言、網頁、資料庫三者可以是身處在資訊環境裡一組相常重要的專業技能,而此三者共成一個面,其應用的範圍最廣也最多。
因此,本書改變傳統資訊圖書只強調單一專業、掌握軟體功能的主題形式,而是著重由程式語言基礎、網頁互動程式開發,到資料庫的系統實作,並介紹許多技術採用的理由與原因,提拱讀者獲取整個面向的知識。希望能夠藉由本書的學習,使讀者能夠輕鬆的進入網站系統開發的領域,也能掌握這些技術的實際應用技巧。
最後,本書是一本使用大量範例引導的電腦學習專書,也因為每個人的學習曲線不同,因此將本書分成三個單元。如果還不熟悉Java,建議從第一章開始打好基礎,如果學習的有點吃力,可以在學習到第七章後逕行先跳至第十一章學習網站的觀念以及互動程式的開發,待往後比較熟悉基礎程式的撰寫,再回頭學習Java比較進階的第八章至第十章的內容。如果已經有Java或是其他程式語言的基礎,建議還是可以從第一章開始快速的瀏覽。至於第十六章開始的網站資料庫應用實務,需要具備許多資料庫系統的知識,尤其是SQL語法。雖然不熟悉這部分並不影響本書最後單元的學習,不過如果要實際開發一個具備完善的網站資料庫應用系統,熟悉資料庫系統還是非常必要的,這一點建議可以在完成本書的學習後,作為進階的學習目標。
最後,祝福各位讀者都能掌握網站互動程式開發的精髓,無論是規劃、還是建置開發,都能成為箇中好手。
多數電腦程式語言專書提供的學習方式,提供許多語法與實例應用的介紹,對於資訊背景強的讀者,能夠快速地入門。但對於許多資訊環境運作的背景卻缺乏介紹,使得學習常常是具備了技術,但少了理由。筆者擔任資訊主管多年,常遇到系統設計師的規劃常常是知其然,不知其所以然,多少便是肇因於電腦專書的介紹過於偏向技術,而缺乏理論的指引。
此外,非資訊背景的讀者在面對複雜的資訊領域環境,常常會有不知從何下手學習的困擾。通常程式語言是一類圖書、網頁是一類圖書、資料庫系統又是一類圖書,如果各別地學習,不僅門檻不低,且常需投入...
目錄
單元一 物件導向– Java 程式語言
第一章 簡介
第一節 程式語言概論
第二節 Java 內涵
第三節 參考資源
第四節 Java 特性
第五節 物件導向觀念
第六節 名詞說明
本章習題
第二章 JDK 安裝與程式初步
第一節 版本與安裝
第二節 第一支Java 程式
第三節 第二支程式
第四節 第三支程式
第五節 小結
本章習題
第三章 基本語法
第一節 註解
第二節 資料型態
第三節 運算子
本章習題
第四章 流程控制
第一節 判斷
第二節 迴圈
第三節 break、continue 敘述
本章習題
第五章 陣列與字串
第一節 陣列
第二節 字串
本章習題
第六章 例外的處理
第一節 例外
第二節 自行拋出例外
第三節 自訂例外
本章習題
第七章 常用類別
第一節 日期類別
第二節 數學運算類別
第三節 陣列類別
本章習題
第八章 類別與物件
第一節 修飾語
第二節 物件的建立
第三節 物件成員
第四節 方法內參數的傳遞
第五節 方法的多載
第六節 this 與 super 指標
第七節 套件
第八節 泛型
本章習題
第九章 繼承
第一節 繼承的使用
第二節 建構子執行順序
第三節 覆寫與遮蔽
本章習題
第十章 多型
第一節 抽象類別
第二節 介面
本章習題
單元二 動態網站開發– JSP 網站互動程式
第十一章 網站開發簡介
第一節 全球資訊網發展歷史
第二節 JSP 簡介
第三節 JSP 的運作原理
第四節 環境準備
本章習題
第十二章 JSP 元素分類
第一節 指引元素
第二節 手稿元素
第三節 動作元素
本章習題
第十三章 HTML 簡介與JSP 跨網頁資料傳遞
第一節 HTML 元素基礎
第二節 HTML 的表單元素
第三節 INPUT 元素
第四節 跨網頁資料傳遞
本章習題
第十四章 JSP 隱含物件
第一節 out 物件
第二節 session 與application 物件
第三節 request 物件
第四節 response 物件
第五節 pageContext 物件
第六節 page、config、exception 物件
本章習題
第十五章 檔案存取
第一節 Cookie
第二節 伺服器端檔案讀寫
第三節 使用者端檔案上傳
本章習題
單元三 網站資料庫應用實務
第十六章 網站資料庫應用程式開發– 初級篇
第一節 資料庫連結驅動程式
第二節 資料庫連線程式撰寫
本章習題
第十七章 網站資料庫應用程式開發– 進階篇
第一節 連線池
第二節 檢索功能程式撰寫
本章習題
第十八章 AJAX
第一節 開發基礎
第二節 資料驗證
第三節 動態資料應用
附錄A JDK 安裝說明
附錄B SQL Server 2017 安裝與設定
附錄C SQL Server 2017 管理工具與資料庫建置
附錄D DOS 常用指令說明
單元一 物件導向– Java 程式語言
第一章 簡介
第一節 程式語言概論
第二節 Java 內涵
第三節 參考資源
第四節 Java 特性
第五節 物件導向觀念
第六節 名詞說明
本章習題
第二章 JDK 安裝與程式初步
第一節 版本與安裝
第二節 第一支Java 程式
第三節 第二支程式
第四節 第三支程式
第五節 小結
本章習題
第三章 基本語法
第一節 註解
第二節 資料型態
第三節 運算子
本章習題
第四章 流程控制
第一節 判斷
第二節 迴圈
第三節 break、continue 敘述
本章習題
第五章 陣列與字串
第一節...