JavaWeb 開發入門

原文:JavaWeb 學習總結(一)——JavaWeb 開發入門

一、基本概念

1.1、Web 開發的相關知識

Web,在英語中 Web 即表示網頁的意思,它用於表示 Internet 主機上供外界訪問的資源。

Internet 上供外界訪問的 Web 資源分爲:

  1. 靜態 Web 資源(如 html 頁面):指 Web 頁面中供人們瀏覽的數據始終是不變。

  2. 動態 Web 資源:指 Web 頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問 Web 頁面看到的內容各不相同

靜態 Web 資源開發技術:HTML。

常用動態 Web 資源開發技術:JSP/Servlet、ASP、PHP 等。

在 Java 中,動態 Web 資源開發技術統稱爲 JavaWeb。

1.2、Web 應用程序

Web 應用程序指供瀏覽器訪問的程序,通常也簡稱爲 Web 應用。例如有 a.html 、b.html…..多個 Web 資源,這多個 Web 資源用於對外提供服務,此時應把這多個 Web 資源放在一個目錄中,以組成一個 Web 應用(或 Web 應用程序)。

一個 Web 應用由多個靜態 Web 資源和動態 Web 資源組成,如:html、css、js 文件,Jsp 文件、java 程序、支持 jar 包、配置文件等等。

Web 應用開發好後,若想供外界訪問,需要把 Web 應用所在目錄交給 Web 服務器管理,這個過程稱之爲虛似目錄的映射。

1.3、Web 發展史

Web 發展的兩個階段:靜態、動態。

1.4、靜態 Web

*htm、*html,這些是網頁的後綴,如果現在在一個服務器上直接讀取這些內容,那麼意味着是把這些網頁的內容通過網絡服務器展現給用戶。整個靜態 Web 操作的過程圖如下:

img

在靜態 Web 程序中,客戶端使用 Web 瀏覽器(IE、FireFox 等)經過網絡(Network)連接到服務器上,使用 HTTP 協議發起一個請求(Request),告訴服務器我現在需要得到哪個頁面,所有的請求交給 Web 服務器,之後 Web 服務器根據用戶的需要,從文件系統(存放了所有靜態頁面的磁盤)取出內容。之後通過 Web 服務器返回給客戶端,客戶端接收到內容之後經過瀏覽器渲染解析,得到顯示的效果。

靜態 Web 中存在以下幾個缺點:

1、Web 頁面中的內容無法動態更新,所有的用戶每時每刻看見的內容和最終效果都是一樣的。

爲了可以讓靜態的 Web 的顯示更加好看,可以加入了 JavaScript 以完成一些頁面上的顯示特效,但是這些特效都是在客戶端上藉助於瀏覽器展現給用戶的,所以在服務器上本身並沒有任何的變化。

實現靜態 Web 客戶端動態效果的手段:

  • JavaScript

  • VBScript

在實際的開發中 JavaScript 使用得最多。

2、靜態 Web 無法連接數據庫,無法實現和用戶的交互。

使用數據庫保存數據是現在大多數系統的選擇,因爲數據庫中可以方便地管理數據,增刪改查操作可以使用標準的 SQL 語句完成。

1.5、動態 Web

所謂的動態不是指頁面會動,主要的特性的是:“Web 的頁面展示效果因時因人而變”,而且動態 Web 具有交互性,Web 的頁面的內容可以動態更新。整個動態 Web 操作的過程圖如下:

img

動態 Web 中,程序依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE、FireFox 等),通過網絡(Network)連接到服務器上,使用 HTTP 協議發起請求(Request),現在的所有請求都先經過一個 Web Server Plugin(服務器插件)來處理,此插件用於區分是請求的是靜態資源(*.htm 或者是*.htm)還是動態資源。

如果 Web Server Plugin 發現客戶端請求的是靜態資源(*.htm 或者是*.htm),則將請求直接轉交給 Web 服務器,之後 Web 服務器從文件系統中取出內容,發送回客戶端瀏覽器進行解析執行。

如果 Web Server Plugin 發現客戶端請求的是動態資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉交給 Web Container(Web 容器),在 Web Container 中連接數據庫,從數據庫中取出數據等一系列操作後動態拼湊頁面的展示內容,拼湊頁面的展示內容後,把所有的展示內容交給 Web 服務器,之後通過 Web 服務器將內容發送回客戶端瀏覽器進行解析執行。

1.6、動態 Web 應用的實現手段

動態 Web 現在的實現手段非常多,較爲常見的有以下幾種:

  • Microsoft ASP、ASP.NET

  • PHP

  • Java Servlet/JSP

1、Microsoft ASP、ASP.NET

微軟公司動態 Web 開發是比較早的,而且最早在國內最流行的是 ASP。ASP 就是在 HTML 語言之中增加了 VB 腳本,但是標準的開發應用應該是使用 ASP+COM,但是實際情況來看,在開發 ASP 的時候基本上都在一個頁面中寫上成百上千的代碼,頁面代碼極其混亂。

ASP 本身有開發平臺的限制:Windows+IIS+SQL Server/Access,ASP 只能運行在 Windows 操作系統上,ASP 現在基本上已經淘汰,現在基本上都是使用 ASP.NET 進行開發,ASP.NET 在性能有了很大的改善,而且開發迅速,但是依然受限於平臺。ASP.NET 中主要是使用 C# 語言。

2、PHP

PHP 開發速度很快,功能強大,跨平臺(平臺指的就是運行的操作系統),而且代碼也簡單。

3、Servlet/JSP

這是 SUN 公司(SUN 現在已經被 Oracle 公司收購)主推的 B/S 架構的實現語言,是基於 Java 語言發展起來的,因爲 Java 語言足夠簡單,而且很乾淨。

Servlet/JSP 技術的性能也是非常高的,不受平臺的限制,各個平臺基本上都可以使用。而且在運行中是使用多線程的處理方式,所以性能非常高。

SUN 公司最早推出的 Web 技術推出的是 Servlet 程序,Servlet 程序本身使用的時候有一些問題,所有的程序是採用 Java 代碼+HTML 的方式編寫的,即,要使用 Java 輸出語句,一行一行地輸出所有的 HTML 代碼,之後,SUN 公司受到了 ASP 的啓發,發展出了 JSP(Java Server Page),JSP 某些代碼的編寫效果與 ASP 是非常相似的。這樣可以很方便地使一些 ASP 程序員轉向 JSP 的學習,加大市場的競爭力度。

二、Web 服務器

2.1、Web 服務器簡介

1、Web 服務器是指駐留於因特網上某種類型計算機的程序,是可以向發出請求的瀏覽器提供文檔的程序。當 Web 瀏覽器(客戶端)連到服務器上並請求文件時,服務器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。

img

2、服務器是一種被動程序:只有當 Internet 上運行在其他計算機中的瀏覽器發出請求時,服務器纔會響應。

img

2.2、常見的 Web 服務器介紹

1、WebLogic

WebLogic 是美國 bea 公司出品的一個 application server。BEA WebLogic 是用於開發、集成、部署和管理大型分佈式 Web 應用、網絡應用和數據庫應用的 Java 應用服務器。將 Java 的動態功能和 Java Enterprise 標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。是目前應用最廣泛的 Web 服務器,支持 J2EE 規範,而且不斷的完善以適應新的開發要求,啓動界面如圖:

img

2、WebSphere

WebSphere Application Server 是一種功能完善、開放的 Web 應用程序服務器,是 IBM 公司電子商務計劃的核心部分,它是基於 Java 的應用環境,用於建立、部署和管理 Internet 和 Intranet Web 應用程序。這一整套產品進行了擴展,以適應 Web 應用程序服務器的需要,範圍從簡單到高級直到企業級。啓動界面如圖:

img

3、Tomcat

TomcatTomcat 是一個實現了 Java EE 標準的最小的 Web 服務器,是 Apache 軟件基金會的 Jakarta 項目中的一個核心項目,由 Apache、Sun 和其他一些公司及個人共同開發而成。因爲 Tomcat 技術先進、性能穩定,而且開源免費,因而深受 Java 愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的 Web 應用服務器。學習 JavaWeb 開發一般都使用 Tomcat 服務器,該服務器支持全部 JSP 以及 Servlet 規範,啓動界面如圖:

img

4、IIS

Microsoft 的 Web 服務器產品爲 Internet Information Services(IIS),IIS 是允許在公共 Intranet 或 Internet 上發佈信息的 Web 服務器。IIS 是目前最流行的 Web 服務器產品之一,很多著名的網站都是建立在 IIS 的平 臺上。IIS 提供了一個圖形界面的管理工具,稱爲 Internet 信息服務管理器,可用於監視配置和控制 Internet 服務。

img

IIS 是一種 Web 服務組件,其中包括 Web 服務器、FTP 服務器、NNTP 服務器和 SMTP 服務器,分別用於網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發佈信息成了一件很容易的事。它提供 ISAPI(Intranet Server API)作爲擴展 Web 服務器功能的編程接口;同時,它還提供一個 Internet 數據庫連接器,可以實現對數據庫的查詢和更新。

img

學習 Web 開發,需要先安裝一臺 Web 服務器,然後再在 Web 服務器中開發相應的 Web 資源,供用戶使用瀏覽器訪問。

三、搭建 JavaWeb 應用開發環境——Tomcat 服務器

3.1、疑問:學習 Web 開發,爲什麼必須要先裝一個 Web 服務器?

在本地計算機上隨便創建一個 Web 頁面,用戶是無法訪問到的,但是如果啓動 Tomcat 服務器,把 Web 頁面放在 Tomcat 服務器中,用戶就可以訪問了。這說明什麼問題?

1、不管什麼 Web 資源,想被遠程計算機訪問,都必須有一個與之對應的網絡通信程序,當用戶來訪問時,這個網絡通信程序讀取 Web 資源數據,並把數據發送給來訪者

2、Web 服務器就是這樣一個程序,它用於完成底層網絡通迅。使用這些服務器,We 應用的開發者只需要關注 Web 資源怎麼編寫,而不需要關心資源如何發送到客戶端手中,從而極大的減輕了開發者的開發工作量。

3.2、下載和安裝 Tomcat 服務器

Tomcat 官方站點:http://jakarta.apache.org

下載 Tomcat 安裝程序包:http://tomcat.apache.org/

img

點擊【Download】跳轉到如下圖所示的下載頁面

img
  1. tar.gz 文件是 Linux 操作系統下的安裝版本

  2. exe 文件是 Windows 系統下的安裝版本

  3. zip 文件是 Windows 系統下的壓縮版本

下載完成後,得到的是一個壓縮包,將壓縮包解壓。

img

將壓縮包解壓後,得到的就是如下圖所示的文件夾,這樣就完成了 Tomcat 服務器的安裝。

img

3.3、啓動和測試 Tomcat 服務器

img

啓動 Tomcat 服務器

雙擊 bin 目錄下的 startup.bat 文件啓動 Tomcat 服務器

img
img

測試 Tomcat 服務器

打開瀏覽器,輸入 http://localhost:8080/,能顯示如下界面代表安裝成功。

img

3.4、Tomcat 啓動常見問題

導致 Tomcat 服務器無法正常啓動的原因一般來說就是如下的兩個:

1、JAVA_HOME 環境變量設置問題

要想雙擊 bin 目錄下的 startup.bat 文件啓動 Tomcat 服務器,首先要做的就是在 Windows 中設置 JAVA_HOME 環境變量,因爲 Tomcat 服務器的啓動需要用到這個 JAVA_HOME 環境變量,如果 Windows 中不存在 JAVA_HOME 環境變量,則 Tomcat 服務器是無法啓動的。

2、端口占用問題

因爲 Tomcat 服務器啓動時默認是使用 8080 端口的,如果這個 8080 端口被別的應用程序佔用了,那麼 Tomcat 服務器就無法正常啓動,看到的現象就是“Tomcat 服務器啓動界面會打印出異常錯誤信息,然後就自動關閉了”,如下圖所示:

img

由於這個窗口從啓動到關閉的時間非常短,我們很難通過這個窗口看到 Tomcat 啓動時的報錯異常信息,因此我們一般只能通過 Tomcat 服務器的記錄的 log(日誌)信息去查看 Tomcat 服務器的運行情況。

在 Tomcat 服務器的根目錄下有一個 logs 文件夾,

img

logs 文件夾存放 Tomcat 的日誌文件,打開 logs 文件夾,可以看到裏面的 log 文件,其中有一個以“catalina.yyyy-MM-dd.log”形式命名的 log 文件,例如“catalina.2014-05-17.log”日誌文件就是記錄 Tomcat 服務器 2014-05-17 這一天的運行情況。

img

打開 catalina.2014-05-17.log 文件,看看裏面的日誌記錄信息,

img

日誌信息裏面清楚的記錄了 Tomcat 服務器的運行情況,如果因爲 8080 端口被佔用而無法正常啓動,就會記錄如上圖所示的異常信息,通過查看異常信息,我們就可知道 Tomcat 服務器爲什麼不能夠正常啓動了!

總結:當 Tomcat 服務器無法正常啓動時,首先檢查是否配置了 JAVA_HOME 環境變量,然後再檢查 Tomcat 服務器啓動時的端口是否被別的應用程序佔用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章