官术网_书友最值得收藏!

1.2 相關知識

1.2.1 認識Web應用程序

在Web 2.0時代,網站往往被技術人員稱為Web應用程序。隨著網絡技術的不斷完善和發展,網站的設計開發和桌面應用程序的開發越來越接近。傳統桌面應用程序完成的業務也越來越多地遷移至網絡環境,通過Web應用程序來完成,如OA(辦公自動化系統)、在線學習系統、教務管理系統等。

1. Web應用程序的工作原理

Web應用程序是一種典型的B/S(Brower/Server,瀏覽器/服務器)結構,如圖1.2所示。

43052-00-011-1

圖1.2 Web應用程序結構

客戶訪問網站使用的瀏覽器稱為客戶端。Web應用程序包含的所有網頁以及相關資源保存于Web服務器,Web應用程序的數據也可使用專門的數據庫服務器進行存放和管理。

當用戶在瀏覽器中輸入一個網址(URL)(如http://localhost/test.php),請求訪問時,該請求被封裝為一個HTTP請求,通過網絡傳遞給Web服務器。Web服務器處理接收到的HTTP請求,將處理結果以HTML格式返回給客戶端瀏覽器。如果在處理HTTP請求時需要訪問數據庫,Web服務器會將相關數據請求提交給數據庫服務器,由數據庫服務器處理數據訪問請求,并將處理結果返回Web服務器。Web服務器將相應的數據處理結果返回客戶端。

提示:

在瀏覽器中選擇“查看/源文件”命令所看到的代碼,便是Web服務器返回瀏覽器的一個HTTP請求HTML格式的響應結果。

2. Web應用程序客戶端技術

Web應用程序客戶端技術主要涉及瀏覽器、HTML/XHTML、XML、CSS、腳本語言等。

(1)瀏覽器

瀏覽器作為網頁在客戶端的訪問工具,負責解析網頁中的HTML/XHTML、CSS和腳本語言等內容,并將最終結果顯示在瀏覽器中呈現給用戶。國內常見的瀏覽器有:IE(Internet Explorer)、Firefox、Safari、Opera、Google Chrome、QQ瀏覽器、百度瀏覽器、搜狗瀏覽器、獵豹瀏覽器、360瀏覽器、UC瀏覽器、傲游瀏覽器和世界之窗瀏覽器等。不同瀏覽器對HTML的支持略有不同,編寫HTML文檔時應注意不同瀏覽器之間的兼容問題。

(2)HTML

HTML(HyperText Markup Language)即超文本標記語言。早期的網頁就是一個個HTML文件,HTML文件擴展名為.htm或.html,該文件為一個純文本文件,它使用各種預定義的標記(tag)來標識文檔的結構、文字、段落、表格、圖片和超級鏈接等信息,瀏覽器負責解釋各種標記以何種方式展示給用戶。

例1.1 一個簡單的HTML文件如下。(源代碼:\chapter1\t1\test1.html)

<html>
  <head>
    <title> 這是標題</title>
  </head>
  <body>
    這是一個簡單的HTML文檔。<br>
    單擊下面的圖片鏈接,訪問在線Web 技術免費教學網站w3school。<br>
    <a >
      <img src="w3.jpg" width="139" height="22" alt="w3school">
    </a>
  </body>
</html>

HTML文件可以使用瀏覽器直接打開以查看顯示結果。上面的HTML文件在IE瀏覽器中的顯示結果如圖1.3所示。

43052-00-012-1

圖1.3 一個簡單的HTML文件

提示:

推薦一個免費的Web技術學習網站:http://www.w3school.com.cn,該網站包括大部分Web開發技術,如HTML/HTML5、CSS/CSS3、XML、TCP/IP、JavaScript、VBScript、JQuery、JSon、SQL、PHP、ASP和ASP.NET等。

(3)XHTML

XHTML(Extensible HyperText Markup Language)即可擴展超文本標記語言,以HTML為基礎,與HTML相似,但語法更加嚴謹。比如,前面的例子使用了<br>標記在頁面中實現換行。XHTML要求所有標記有結束標記,如<a>的結束標記為</a>。XHTML中的換行標記應該加上標記結束符號,為<br/>。

HTML語法要求比較松散,網頁開發人員使用起來比較靈活。但對機器而言,語法松散意味著處理難度增大。對于資源有限的設備(如手機),處理難度會更大。因此產生了由DTD定義規則,語法要求更加嚴格的XHTML。大部分常見的瀏覽器都可以正確地解析XHTML,幾乎所有的網頁瀏覽器在正確解析HTML的同時,可兼容XHTML。

(4)XML

XML是Extensible Markup Language的縮寫,表示為可擴展標記語言,是一種用于標記電子文檔,使其數據具有結構化的標記語言。XML與HTML可以算得上是一對孿生兄弟,它們都由SGML(Standard Generalized Markup Language,標準通用標記語言)發展而來。

HTML使用預定義的標記來告訴瀏覽器如何顯示標記的內容。而XML的目的在于組織數據,使文檔中的數據組織更加規范,便于在不同應用程序、不同平臺之間交換數據。

XML使用文檔作為定義的標記來組織數據,如何解釋標記由用戶決定。XML文件是一個純文本文件,便于網絡傳輸。越來越多的應用程序使用XML文件來保存數據,如Java、微軟的.NET平臺、各種Web服務器(IIS、Apache、Tomcat等)和各種數據庫服務器(MySQL、SQL Server、Oracle等),均使用XML來保存相應的配置信息。

例1.2 一個IIS Web網站配置文件web.config如下。(源代碼:\chapter1\t3\web.config)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
     <system.webServer>
         <defaultDocument>
             <files>
                 <add value="index.php" />
             </files>
         </defaultDocument>
     </system.webServer>
</configuration>

上述代碼中,文件開頭的<?xml>標記表示這是一個XML文件,其version屬性說明了XML版本號。這是一個IIS Web網站的配置文件,它為網站指定了默認文檔為index.php。可以使用瀏覽器直接打開XML文件,查看其中的數據組織結構,如圖1.4所示。

43052-00-013-1

圖1.4 在瀏覽器中查看XML文件

(5)CSS

CSS(Cascading Style Sheets)即層疊樣式表,也稱級聯樣式表。在HTML中,各種預定義的標記只能簡單組織頁面結構和內容,CSS則進一步通過樣式來決定瀏覽器如何精確控制HTML標記的顯示,如字體、顏色、背景和其他效果。

目前,大多數主流瀏覽器均支持CSS,其最新版本為CSS 3。

例1.3 為例1.1中的HTML添加樣式。(源代碼:\chapter1\t3\test3.html)

<html>
  <head>
    <title> 這是標題</title>
    <style type="text/css">
      body {font-family: 隸書;}
    </style>
  </head>
  <body>
    這是一個簡單的HTML文檔。<br>
    單擊下面的圖片鏈接,訪問在線Web 技術免費教學網站w3school。<br>
    <a  style="border-style:solid;border-width:5px;">
      <img src="w3.jpg" width="139" height="22" alt="w3school">
    </a>
  </body>
</html>

上面的HTML文件中,使用<style>標記定義了一個內部樣式表,該樣式表body標記內容的字體定義為“隸書”,即使用隸書字體顯示body內容的文本。在<a>標記中,用style屬性為超鏈接定義了一個內聯樣式,并為超鏈接添加一個邊框。上面的HTML文件在IE中顯示結果如圖1.5所示。

43052-00-014-1

圖1.5 添加了CSS樣式的HTML文件

(6)客戶端腳本語言

客戶端腳本語言通過編程為HTML頁面添加動態內容,與用戶完成交互。HTML頁面中包含的腳本語言代碼稱為腳本。腳本可以嵌入HTML文檔中,也可存儲在獨立的計算機文件中,使用時包含到HTML文檔中即可。包含了腳本的HTML通常稱為動態網頁,即DHTML(Dynamic HTML,動態HTML)。

常見的客戶端腳本語言包括JavaScript、VBScript、Jscript和Applet等,其中JavaScript和VBScript使用最為廣泛。

JavaScript和Java沒有直接關系,它由Netscape公司開發,并在Netscape Navigator(網景瀏覽器)中實現。目前,網景瀏覽器因為技術競爭的原因已經退出了市場,但JavaScript卻以頑強的生命力生存下來,并成為最受Web開發人員歡迎的客戶端腳本語言。

因為技術原因,微軟推出了JScript,CEnvi推出了ScriptEase,它們與JavaScript一樣,可在瀏覽器上運行。為了統一規格,且JavaScript兼容于ECMA標準,因此,JavaScript也稱為ECMAScript。

VBScript是Visual Basic Script的簡稱,即Visual Basic腳本語言,有時也縮寫為VBS,它是微軟的Visual Basic語言的子集。使用VBScript,可通過Windows腳本宿主調用COM,所以可以使用部分Windows操作系統的程序庫。VBScript是IIS的默認源程序語言。

例1.4 在HTML中使用JavaScript腳本顯示對話框,代碼如下。(源代碼:\chapter1\t4\test4.html)

<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <script type="text/javascript">
            function showdialog(){
                  var ok=confirm("請單擊一個按鈕!");
                  if (ok==true){
                        alert("你單擊了“確定”按鈕!");
                  }else{
                       alert("你單擊了“取消”按鈕!");
                  }
            }
         </script>
    </head>
    <body>
     <input type="button" onclick="showdialog()">單擊按鈕測試JavaScript 腳本</input>
    </body>
</html>

上面的HTML文件在IE中顯示的結果如圖1.6所示。打開HTML文件后,在頁面中單擊43052-00-015-1按鈕,會打開圖1.7所示的對話框,提示“請單擊一個按鈕”,此時可單擊對話框中的43052-00-015-243052-00-015-3按鈕。

43052-00-015-4

圖1.6 在HTML中使用JavaScript腳本顯示對話框

43052-00-015-5

圖1.7 JavaScript對話框

3. Web服務器

Web服務器即WWW(World Wide Web,萬維網)服務器,是網絡服務器計算機中的一種應用程序,用于提供WWW服務。WWW服務即通過互聯網為用戶提供各種網頁。網頁是網站的基本信息單位,它通常由文字、圖片、動畫和聲音等多種媒體信息以及鏈接組成,用HTML編寫,通過鏈接實現與其他網頁或網站的關聯和跳轉。一個網站的所有網頁和相關資源都需要上傳到Web服務器所在的網絡服務器計算機中,保存在Web服務器管理的目錄。Web服務器中的每個網頁都有一個URL(Uniform Resource Locator,統一資源定位符),用戶在客戶端的瀏覽器地址欄中輸入URL或其他頁面的URL超級鏈接可以訪問網頁。

萬維網由Web客戶端瀏覽器、Web服務器和網頁資源組成。用戶訪問網絡時,客戶端瀏覽器和Web服務器之間通過HTTP(HyperText Transfer Protocol,超文本傳輸協議)完成信息的交換。當用戶在瀏覽器中訪問網頁時,首先由瀏覽器向Web服務器發出請求,建立與服務器的連接。然后用戶請求被封裝在一個HTTP包中傳遞給Web服務器,Web服務器解析收到的HTTP請求數據包,給客戶端返回一個HTTP響應。

如果用戶請求訪問的是一個HTML文件,這個HTML文件會直接作為HTTP響應返回;如果用戶請求訪問的是一個服務器端腳本文件,如PHP、JSP或ASP .NET文件,該腳本會被傳遞給響應的處理程序進行處理,處理的結果最后會產生一個HTML文件返回客戶端。常用的Web服務器有IIS、Apache、Nginx、Tomcat及Weblogic等。

4. 數據庫服務器、數據庫管理系統

目前各種網站都會使用到數據庫,而各種業務邏輯的本質幾乎都涉及數據處理。為了高效并安全地處理大量數據,必須使用數據庫管理系統。SQLite和Access等輕量級數據庫可以直接訪問,而Oracle、MS SQL Server和MySQL等大中型數據庫則需要配置數據庫服務器,由服務器內置的管理系統負責數據的建立、更新和維護。

如果網頁中包含了數據請求,數據請求由Web服務器提交給數據庫服務器,數據庫負責完成數據請求的處理,將處理結果返回給Web服務器,Web服務器將最終處理結果封裝在HTML文件中返回給用戶。

5. Web服務器端編程技術

Web服務器端編程技術種類很多,常用的有Microsoft的ASP/ASP.NET、Sun的JSP(Sun公司于2010年被Oracle收購,但不少技術人員仍習慣認為Java習慣技術屬于Sun)和Zend的PHP。

(1)ASP/ASP.NET

ASP/ASP.NET是由Microsoft推出的Web服務器端編程技術,通常采用Windows服務器+IIS+SQL Server+ASP/ASP.NET組合進行Web應用程序開發,所有技術均是Microsoft產品,因此兼容性較好、安裝使用方便,配置要求低。同時,Microsoft提供了大量的文檔和強大的開發工具。基于Microsoft技術的龐大用戶群,ASP/ASP.NET受到大量Web開發人員的支持。Microsoft相關技術都是商業軟件,這也導致了網站建設客觀成本比較高。Microsoft相關技術的跨平臺局限性也導致了ASP/ASP.NET只能用于Windows環境。

(2)JSP

JSP(Java Server Pages)是Java在Web應用程序開發中的應用,與ASP類似,JSP通過在HTML文件中插入Java代碼來實現業務邏輯。其中HTML文件稱為JSP文件,擴展名為.jsp。JSP文件在服務器端被處理,轉換為HTML文件返回客戶端。

借助于Java的跨平臺特性,JSP開發的Web應用程序同樣具有跨平臺特點,既可在UNIX、Linux系統中部署,也可在Windows系統中部署。

(3)PHP

PHP是一種免費、開源的Web開發技術,它通常與Linux、Apache和MySQL等開源軟件自由組合,形成了一個簡單、安全、低成本、開發速度快和部署靈活的開發平臺。PHP是本書的學習內容,在后面的章節中將詳細介紹。

主站蜘蛛池模板: 吴江市| 通山县| 百色市| 太白县| 东乡| 会理县| 东港市| 招远市| 太仆寺旗| 阿克陶县| 襄樊市| 陕西省| 常熟市| 南宁市| 林周县| 桃园市| 湖州市| 山东| 泌阳县| 商河县| 山阳县| 平凉市| 类乌齐县| 云梦县| 万载县| 金乡县| 成武县| 太湖县| 延吉市| 刚察县| 自贡市| 余干县| 静乐县| 林周县| 贺兰县| 延津县| 桓仁| 建阳市| 库伦旗| 瓮安县| 盐边县|