【文章內(nèi)容簡介】
cript 和 VBScript 兩種腳本語言,增加了 ASP 的編程功能,用戶也可安裝其他腳本語言,如 Perl、 Rexx 等。 ASP 的運行環(huán)境 目前 ASP 可運行在四種環(huán)境下: WINDOWS NT server,運行 IIS(Inter Information Service) 以上。 WINDOWS NT workstation 運行 PWS( Personal Web Server) 以上。 WINDOWS 95/98/Me 運行 PWS 以上。 WINDOWS 2020/XP 運行 IIS (支持最新的 ASP ) ASP 內(nèi)建對象 Active Server Pages 提供內(nèi)建對象,這些對象使用戶更容易收集通過瀏覽器請求發(fā)送的信息、響應(yīng)瀏覽器以及存儲用戶信息(如用戶首選項)。 Application 對象: 可以使用 Application 對象使給定應(yīng)用程序的所有用戶共享信息。 Request 對象: 可以使用 Request 對象訪問任何用 HTTP 請求傳遞的信息,包括從 HTML 表格用 POST 方法或 GET 方法傳遞的參數(shù)、 cookie 和用戶認(rèn)證。Request 對象使您能夠訪問發(fā)送給服務(wù)器的二進制數(shù)據(jù),如上載的文件。 Response 對象: 可以使用 Response 對象控制發(fā)送給用戶的信息。包括直接發(fā)送信息給瀏覽器、重定向瀏覽器到另一個 URL 或設(shè)置 cookie 的值。 Server 對象: Server 對象提供對服務(wù)器上的方法和屬性進行 的訪問。最常用的方法是創(chuàng)建 ActiveX 組件的實例 ()。其他方法用于將URL 或 HTML 編碼成字符串,將虛擬路徑映射到物理路徑以及設(shè)置腳本的超時期限。 Session 對象: 可以使用 Session 對象存儲特定的用戶會話所需的信息。當(dāng)用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時,存儲在 Session 對象中的變量不會清除;而用戶在應(yīng)用程序中訪問頁時,這些變量始終存在。也可以使用 Session 方法顯式地結(jié)束一個會話和設(shè)置空閑會話的超時期限。 ObjectConection 對象: 可以使用 ObjectConection 對象提交或撤消由 ASP腳本初始化的事務(wù)。 ASP 的主要內(nèi)置組件 Ad Rotator 組件: 可用來安指定計劃在同一頁上自動輪換顯示廣告,用于WWW 上日益重要的廣告服務(wù)。 Browser Capabilities 組件: 確定訪問 WEB 站點的用戶瀏覽器的功能數(shù)據(jù),包括類型、性能、版本等。 Database Access 組件: 提供 ADO( ActiveX Data Objects)來訪問支持 ODBC的數(shù)據(jù)庫。 File Access 組件: 提供對服務(wù)器端文件的讀寫功能。 Content Linking組件: 生成 WEB 頁內(nèi)容列表,并將各頁順序連接,用于制作導(dǎo)航條。 此外,還可安裝 Myinfo、 Counters、 Content Rotator、 Page Count 等組件,用戶也可自行編制 Active 組件,以提高系統(tǒng)的實用性。 ASP 的腳本語言 腳本語言是一種介于 HTML和 VB、 JAVA等高級語言之間的一種語言,它可以和 HTML語言混在一起使用,可以用來在瀏覽器客戶端進行程序編制,從而控制瀏覽器等對象操作。ASP 本身不是一種腳本語言,但他卻為嵌入 HTML 的腳本語言提供了運行環(huán)境。 ASP 中常用的腳本語言有 VBScript 和 JavaScript,系統(tǒng)默認(rèn)語言是 VBScript,在系統(tǒng)中,兩種腳本語言都有使用。 用 HTML, CSS 已經(jīng)能夠編寫非常漂亮的靜態(tài)網(wǎng)頁,但是這些網(wǎng)頁缺乏和用戶的互動性。比如,你需要為你的網(wǎng)站增加用戶注冊和登錄的功能;你可能還需要做一些網(wǎng)上調(diào)查,了解用戶對于某個事件或者產(chǎn)品的反饋;你還可能需要一個電子商務(wù)網(wǎng)站,及時發(fā)布產(chǎn)品信息和滿足用戶在線訂購的需要 ...... 編寫 ASP 動態(tài)網(wǎng)頁能夠幫助你實現(xiàn)這些和用戶互動的功能。 HTML 和 ASP 的區(qū)別 HTML 是編寫網(wǎng)頁的最簡單的語言。 HTML 只能 用于編寫靜態(tài)的網(wǎng)頁。 當(dāng)一個用戶瀏覽器 (下圖所示: Web Client) 從 Web 服務(wù)器 (下圖所示: Web Server) 要求一個 HTML 網(wǎng)頁時, Web 服務(wù)器就將這個網(wǎng)頁直接發(fā)送給用戶瀏覽器,不經(jīng)過計算處理。然后用戶瀏覽器會處理該網(wǎng)頁的 HTML 代碼,然后將結(jié)果顯示出來。 見下圖所示:( 1) 而 ASP 的處理過程則更復(fù)雜些。當(dāng)一個用戶瀏覽器 (下圖所示: Web Client) 從Web 服務(wù)器 (下圖所示: Web Server) 要求一個 ASP 網(wǎng)頁時, Web 服務(wù)器會將這個 ASP 文件發(fā)送給 Web 服務(wù)器的 ASP 引擎 (下圖所示: ASP Engine), ASP 引擎則將該 ASP 網(wǎng)頁中所有的服務(wù)器端腳本 (下圖所示: %和 %之間的代碼 ) 轉(zhuǎn)換成HTML 代碼,然后將所有 HTML 代碼發(fā)送給用戶瀏覽器。 見下圖所示: (2) 從下圖就可以看出來靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁的不同之處,所以說動態(tài)網(wǎng)頁并不是有能動的圖片和動畫的網(wǎng)頁。 圖 1 ASP 的特點 ASP 是在服務(wù)器端腳本編譯環(huán)境,使用它可以創(chuàng)建和運行動態(tài)、交互的 Web服務(wù)器應(yīng)用程序。 ASP 可以與 HTML 頁、腳本命令和 ActiveX 組件組合創(chuàng)建交互的 Web 頁和基于 Web 的功能強大的應(yīng)用程序。 ASP應(yīng)用程序很容易開發(fā)和修改。ASP 是一個位于服務(wù)器端的腳本運行環(huán)境。通過這種環(huán)境,用戶可以創(chuàng)建和運行動態(tài)的交互式 Web 服務(wù)器應(yīng)用程序,如交互 式動態(tài)網(wǎng)頁,包括使用HTML 表單收集和處理信息、上傳與下載等。 通常情況下,用戶通過瀏覽器看到的網(wǎng)頁大多是靜態(tài)的,目前 Inter 上的許多站點,仍然提供“靜態(tài)”( static)的主頁內(nèi)容。所謂“靜態(tài)”,是指站點的主頁內(nèi)容是“固定不變”的。一個“靜態(tài)”的站點,若要更新主頁的內(nèi)容,必須手動更新其 HTML 的文件數(shù)據(jù)。而隨著 Web 技術(shù)的發(fā)展,用戶希望能夠看到根據(jù)要求而動態(tài)生成的主頁,例如響應(yīng)用戶查詢數(shù)據(jù)庫的要求而生成報表等。站點服務(wù)器收到要求執(zhí)行的應(yīng)用程序,分析表單( form)的輸入數(shù)據(jù),將執(zhí)行的結(jié)果以 HTML 的格式傳送給瀏覽器。根據(jù)用戶請求生成動態(tài)主頁的傳統(tǒng)方法有 CGI、 ISAPI 等。 CGI 是根據(jù)瀏覽器端的 請求激活響應(yīng)進程,每一個請求對應(yīng)一個進程。當(dāng)同時有很多請求時,程序擠占系統(tǒng)資源,造成效率低下。 ISAPI 針對這一缺點進行了改進,利用dll(動態(tài)鏈接庫技術(shù)),以線程代替進程,提高了性能和 速度,但要考慮線程的同步問題,而且開發(fā)步驟煩瑣。這兩種技術(shù)和另一普遍使用的開發(fā)動態(tài)網(wǎng)頁的技術(shù) Java 都還存在著另外一個問題,那就是開發(fā)困難,程序的開發(fā)和 HTML 寫作是兩個完全不同的過程,需要專門的程序員開發(fā)。 ASP 使用的 ActiveX 技術(shù)基于開放設(shè)計環(huán)境,用戶可以自己定義和制作組件加入其中,使自己的動態(tài)網(wǎng)頁幾乎具有無限的擴充能力,這是傳統(tǒng)的 CGI 等程序所遠遠不及的地方。 IIS 與 ASP 在過去,客戶機 /服務(wù)器結(jié)構(gòu)的設(shè)計與 Web 的相關(guān)技術(shù)幾乎處于平行線上,兩者相互獨立并無法作出集成性的設(shè)計 ?,F(xiàn)在我們利用 IIS+ASP 構(gòu)成三層式 Web 結(jié)構(gòu)(如圖 所示)的中間一層,將客戶機 /服務(wù)器結(jié)構(gòu)與 Web 密切結(jié)合,完成前后端兩者的集成輸出功能,使得 Web 站點的開發(fā)更方便,實現(xiàn)的功能更強大。 利用 IIS+ASP 技術(shù)來集成 Web 前后端所帶來的強大效益可歸結(jié)為以下幾個方面: 1. 減少構(gòu)建和維護成本 2. 加快聯(lián)機過程 3. 應(yīng)用軟件集中在服務(wù)器端開發(fā)管理 4. 前端可使用任何瀏覽器( IE、 Netscape? ..) 5. 后端可存取任何數(shù)據(jù)庫 (SQL、 Access? ..) 6. 可使用任何腳本語言開發(fā) (VBScript、 JavaScript、 PERL? ..) 程序和計算邏輯 前端瀏覽器 ActiveX Server元件 ActiveX Server 元件 后端數(shù)據(jù)庫 數(shù)據(jù)庫服務(wù)器 Microsoft IIS + ASP 瀏覽器 第 三 章 系統(tǒng)總體設(shè)計 系統(tǒng)的幾個模塊組成 售后服務(wù)管理平臺由登錄模塊、賬號管理模塊、項目、產(chǎn)品管理模塊、統(tǒng)計模塊、信息交換模塊、信息轉(zhuǎn)發(fā)模塊構(gòu)成 . 系統(tǒng)實現(xiàn)的總功能 具備防止破解密碼的功能。按設(shè)定的權(quán)限具備相應(yīng)的操作權(quán)限,并能有效防止越權(quán)操作。超級管理員有權(quán)對任意賬號進行添加、刪除、鎖定、解鎖、查詢、修改操作。一般管理員有權(quán)對本級別以下的賬號進行鎖定、解鎖、查詢、修改操作。管理員有權(quán)對本級別以下的賬號進行查詢、修改操作。查詢時支持模糊查詢。超級管理員有權(quán)對項目名稱、產(chǎn)品名稱、信息進行添加、刪除、修改操作,并設(shè)定項目與產(chǎn)品直接的關(guān)聯(lián)。一般管理員有權(quán)對項目名稱、產(chǎn)品名稱、信息進行添加、刪除、修改操作,并設(shè)定項目與產(chǎn)品直接的關(guān)聯(lián)。管理員有權(quán)進行修改操作。對產(chǎn)品故障率、投訴、被投訴、項目投訴率、最佳服務(wù)排名等進行統(tǒng)計排名。 1.報障:學(xué)校用戶通過項目、產(chǎn)品、供應(yīng)商等方式確定具體的故障產(chǎn)品,向相應(yīng)的供應(yīng)商發(fā)出故障申報。能自動計算產(chǎn)品保修期是否已過,給 出收費服務(wù)提示。 :供應(yīng)商 閱讀報障信息后與用戶溝通并安排處理的予以響應(yīng)。服務(wù)完成后反饋服務(wù)結(jié)果。 :校方如果對響應(yīng)時間或服務(wù)情況不滿意可以進行投訴。接到投訴后供應(yīng)商可以作出回應(yīng)解釋。最后由管理員處理后,確認(rèn)投訴是否有效。 、評審:用戶可以對本次服務(wù)評分。管理員根據(jù)信息反饋情況對服務(wù)進行評審。評分、評審是進行統(tǒng)計排名的重要依據(jù)。 普通信息:學(xué)校及供應(yīng)商可以相互間發(fā)送信息,每次限發(fā)給一個用戶。管理員可以發(fā)信息給任何人,可以群發(fā)。 系統(tǒng)數(shù)據(jù)庫分析 數(shù)據(jù)庫為 byservice 實體: ER 圖 : 實體: 1 1 ∞ ∞ Item_name message member product Product_typee service 實體 Item_name 屬性: 實體 message 屬性 實體 Product_type 屬性 item_name id Item_name note valid_appeal_sum not_valid_appeal_sum subject sent_time message note ufilel_sum receiverppeal_sum [read]al_sum product_type_name id note Product_type 數(shù)據(jù)庫 設(shè)計 數(shù)據(jù)庫表: 表 item_name: 表 member: 表 message: 表 product: 表 product_type: 第 四 章 系統(tǒng) 詳細設(shè)計 系統(tǒng)登錄 界面模塊 設(shè)計 !include file=conn/ % dim account,pwd session(admin)=false session(account)= account=replace(trim((account)),space(1),) pwd=trim((pwd)) userip=(HTTP_X_FORWARDED_FOR) if isempty(userip) then userip=(remote_addr) set rs=() sql=select * from member where active=1 and account=39。amp。accountamp。39。 sql,conn,1,3 if or then set rs=nothing set conn=nothing script Language=39。JavaScript39。 {alert(39。帳號不存在或被鎖定! 39。)。 (1)。 } /script 39。 ?errid=1 end if 39。10 次失敗,鎖定一天 39。if rs(logfail)=10 and DateDiff(d,rs(lastlogin),now)1 t