使用 ASP 制作网页

使用 ASP 制作网页

ASP(Active Server Pages)是微软的服务器端网页技术,运行在 IIS 上,并把服务器端代码与 HTML 混合在一起。ASP.NET Core 是目前的发展方向,但许多现有系统仍在使用 VBScript 的经典 ASP。本文说明请求的处理方式、表单数据的读取,以及需要了解的实践。

测试说明:编写本文所用的电脑没有 IIS 和 ASP,因此代码未在此运行。请先安装带 ASP 的 IIS 并自行测试后再使用。

需要准备的东西

工作原理

示意图:浏览器向 IIS 上的 ASP 页面发送请求,并收到 HTML 响应
示意图:浏览器向 IIS 上的 ASP 页面发送请求,并收到 HTML 响应

第一个 ASP 页面

创建 `hello.asp` 并输入:

<%@ Language="VBScript" %>
<html>
<body>
  <h1>สวัสดี ASP</h1>
  <p>เวลาบนเซิร์ฟเวอร์: <%= Now() %></p>
</body>
</html>

`<% ... %>` 是在服务器上运行的代码,`<%= ... %>` 则把值写入返回给浏览器的 HTML。

读取表单数据

<%@ Language="VBScript" %>
<%
Dim name
name = Request.Form("name")
%>
<form method="post" action="greet.asp">
  ชื่อ: <input type="text" name="name">
  <input type="submit" value="ส่ง">
</form>
<% If name <> "" Then %>
  <p>ยินดีต้อนรับ <%= Server.HTMLEncode(name) %></p>
<% End If %>

`Request.Form` 读取提交的值。`Server.HTMLEncode` 防止用户把 HTML 或脚本注入页面。

连接数据库

经典 ASP 通常使用 ADO 连接数据库。切勿把用户输入直接拼接到 SQL 文本中,应使用参数,否则会产生 SQL 注入漏洞。

常见错误

下一步

对于新项目,建议考虑持续维护的 ASP.NET Core。已有的 ASP 系统应逐步迁移,并同时补充安全防护。

总结

ASP 通过 IIS 在服务器上运行代码,并与 HTML 结合。关键点是对显示的值进行编码,并在访问数据库时使用参数。