Classic ASP 入門
介紹 ASP 是什麼、伺服器端執行方式、`.asp` 檔案特性,以及如何用 `Response.Write` 產生輸出。
參考 W3Schools 的 ASP 與 ASP.NET 教學分類,我把內容重新組織成更適合繁中學習者的教學首頁: 先理解技術定位,再走進範例、資料處理與進階工具,學習動線更清楚。
介紹 ASP 是什麼、伺服器端執行方式、`.asp` 檔案特性,以及如何用 `Response.Write` 產生輸出。
整理 `Request.QueryString` 與 `Request.Form` 的差異,加入 GET / POST 實例與驗證提醒。
提供 Cookie 建立、讀取、多鍵值資料與不支援 Cookie 時的替代傳值方法。
說明連線、開啟資料庫、建立 Recordset、讀取資料、關閉資源等標準流程。
用簡單易懂方式說明 HTML + C#/VB 伺服器程式碼混寫模式,快速進入 Razor 語法。
補充 WebGrid、Chart、WebMail、WebImage 等輔助元件概念,讓教材更完整。
給學習者快速建立全貌,知道自己該從哪一條路開始學。
| 比較項目 | Classic ASP | ASP.NET Web Pages |
|---|---|---|
| 主要定位 | 早期 Microsoft 伺服器端腳本技術,適合理解基礎網頁動態化流程。 | 較新一代的 ASP.NET 網站模型,適合用 Razor 建立簡潔頁面。 |
| 常見語法 | VBScript 為主,使用 `<% %>` 包住伺服器端程式碼。 | 常見為 C# Razor,使用 `@` 進行伺服器端輸出與邏輯處理。 |
| 常見應用 | 維護舊系統、理解表單提交、Cookie、Session、ADO。 | 快速建立小型網站、內容頁、資料顯示頁與各種 Helpers 擴充功能。 |
| 學習建議 | 先學請求/回應模型、表單資料、資料庫連線流程。 | 再進一步學 Razor、Layout、驗證與工具元件應用。 |
這裡把網站設計成更完整的教學入口,可用來延伸成多頁式教材。
介紹 ASP 是什麼、檔案如何在伺服器上執行,以及如何用 `Response.Write()` 輸出內容。
比較 `Request.QueryString` 與 `Request.Form`,並補上常見驗證與安全處理建議。
整理 Cookie 基本用法、到期時間設定、Key 型 Cookie 與無 Cookie 時的替代方案。
建立連線、開啟資料表、讀取欄位與關閉資源,是維護舊系統時最重要的技能之一。
學習如何把 HTML、CSS、JavaScript 與 C# 伺服器端程式碼結合在同一頁中。
延伸更多進階功能,讓教學網站不只停留在語法,也能呈現實務功能模組。
可再延伸成完整章節,幫助學習者理解跨頁資料與伺服器物件管理。
增加輸入驗證、錯誤處理、XSS 與 SQL Injection 觀念,使教材更接近實務需求。
可進一步拆出側欄、頁首、頁尾、麵包屑、章節樹、標籤分類與版本切換系統。
比一般教學首頁多做一層互動體驗,讓使用者直接切換不同主題,快速看到程式碼與預期輸出。
適合放在網站首頁的「第一個範例」。使用者可以立刻看到 ASP 如何把伺服器端程式輸出成 HTML。
<!DOCTYPE html>
<html>
<body>
<h1>Classic ASP 範例</h1>
<%
Response.Write("Hello ASP 世界!")
%>
</body>
</html>
這個範例對應表單教學章節,能清楚展示 POST 提交後如何在 ASP 端讀取使用者輸入。
<form method="post" action="welcome.asp">
姓名:<input type="text" name="username">
<input type="submit" value="送出">
</form>
' welcome.asp
<%
Dim username
username = Request.Form("username")
Response.Write("<h2>歡迎," & username & "</h2>")
%>
很適合加入教學站中的「使用者偏好設定」章節,例如記住暱稱、語系、主題顏色等。
<%
Response.Cookies("username") = "Kevin"
Response.Cookies("username").Expires = #December 31, 2026#
%>
<%
Dim user
user = Request.Cookies("username")
Response.Write("<p>目前登入名稱:" & user & "</p>")
%>
這是維護舊型 ASP 專案常見的實戰範例。建議教材中加入「連線安全」、「關閉資源」與「錯誤處理」說明。
<%
Dim conn, rs, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=SERVER01;Initial Catalog=DemoDB;User ID=sa;Password=123456"
sql = "SELECT TOP 1 FullName FROM Members"
Set rs = conn.Execute(sql)
If Not rs.EOF Then
Response.Write("<h3>" & rs("FullName") & "</h3>")
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>
若要讓網站內容更貼近 ASP.NET 教學,這個範例能快速示範 Razor 如何直接把伺服器端資料嵌入 HTML。
@{
var title = "ASP.NET Web Pages 範例";
var now = DateTime.Now;
}
<h1>@title</h1>
<p>目前時間:@now</p>
相較一般入門頁面,這裡額外加入 Helpers 區塊,讓網站更像完整課程平台,而不只是概念首頁。
@{
var grid = new WebGrid(source: new[] {
new { Id = 1, Name = "ASP" },
new { Id = 2, Name = "ASP.NET" }
});
}
<h2>課程清單</h2>
@grid.GetHtml(
tableStyle: "table",
headerStyle: "thead",
alternatingRowStyle: "alt"
)
如果你要把這份範本做成真正完整的教材站,可以照這個順序擴展。
把首頁作為總導覽,清楚分出 Classic ASP 與 ASP.NET 兩條學習路徑,再放上課程進度、推薦閱讀與新手導航。
每個主題建立獨立頁面,例如 `asp-intro.html`、`asp-forms.html`、`asp-cookies.html`、`asp-ado.html`、`aspnet-razor.html`。
可增設「程式碼練習區」、「語法速查表」、「常見錯誤示例」、「章節測驗」、「下載範例檔」與「版本切換」。
增加登入系統、後台管理、文章系統、會員資料查詢、圖片上傳、郵件通知、報表匯出等完整小專題。
可直接放進你的教材站,提升專業度與完整性。
不行。這份檔案是「教學網站前端頁面」,用來展示課程內容與範例程式碼。 真正執行 Classic ASP 或 ASP.NET,仍需 IIS 或相容的伺服器環境。
最簡單的方法是把每個章節拆成單獨 HTML,並共用相同頁首、側欄與頁尾。 再把本頁的章節卡片改成連往各自頁面即可。
可以。你可以把這份前端頁面保留,後端再接上 Classic ASP 或 ASP.NET 的真實功能, 例如登入、會員中心、課程收藏、資料查詢與後台管理。
可以,建議加入麵包屑、章節樹、程式碼高亮、章節目錄、自動產生錨點、右側 TOC、 範例下載區與「上一章 / 下一章」導覽。