1 各自的HelloWord版本1.1 ASP
<%
Response.Write("hello asp")
%>
檔案名稱為test.asp。
1.2 ASP.net
<%@ page Language="C#" %>
<%
Response.Write("hello asp.net");
%>
檔案名稱為test.aspx。
需要注意的是由於ASP.net支援多種語言開發,而預設的語言是VB.net,這裡使用的是C#語言,所以必須對其進行明確控制。否則編譯時間會按照VB.net進行,從而報錯!
1.3 JSP
<%
out.println("hello jsp");
%>
檔案名稱為 test.jsp
1.4 分析
asp,aspx,jsp都採用了相同的嵌入文法<%代碼%>,都內建了用於輸出文本的對象,ASP-Response,ASP.net-Response, JSP-out。
對於語言來講,VBScript不區分大小寫,而C#和Java都區分;
對於命名習慣,VBScript和C#的類、屬性、方法首字母都大寫,而Java除了類其它的統統都習慣以小寫字母開頭。
2 基本文法2.1 嵌入運算式
(1)ASP
<%= %>
(2)ASP.net
<%= %>
(3)JSP
<%= %>
可見,三者完全相同。
2.2 嵌入聲明
(1)ASP
<script Language="VBScript" runat="server>
sub f
Response.Write("hello asp from script")
end sub
</script>
(2)ASP.net
<script Language="C#" runat="server">
void f()
{
Response.Write("asp.net from script");
}
</script>
(3)JSP
<%!
public void f()
{
out.println("jsp ");
}
%>
可見,ASP和ASP.net使用的文法相同,而JSP不一樣。
2.4 嵌入程式片段
(1)ASP
<%程式片段%>
(2)ASP.net
<%程式片段%>
(3)JSP
<%程式片段%>
可見三者的文法完全一樣。
3 內建對象3.1 ASP
(1)Request對象
代表了用戶端發送到伺服器端的資訊。攜帶了如使用者端瀏覽器資訊、請求字串、表單資料、cookies等。
(2)Response對象
代表了伺服器端返回到用戶端的相關內容與操作,可以通過它設定返回內容,返回cookie設定,是否緩衝等。
(3)Application對象
代表了整個應用,是應用範圍內的變數。多個頁面共用它,所以會涉及到並發訪問的問題,所以提供了Lock和Unlock方法進行同步處理。
(4)Session對象
代表了一個會話,會話有一個唯一的ID標識,用戶端一般通過cookie或者請求字串來提供會話的標識。
(5)Server對象
代表了伺服器端的環境,提供了註冊組件、映射路徑等基本操作。
(6)ObjectContext對象
用於控制ASP的交易處理,編程時很少直接用到。
3.2 ASP.net
(1)Request對象
作用與ASP中的Request相同。
(2)Response對象
作用與ASP中的Request相同。
(3)Application對象
作用與ASP中的Application相同。
(4)Session對象
作用與ASP中的Session相同。
(5)Server對象
作用與ASP中的Session相同。
(6)Page對象
代表當前的頁面,或者編譯後的類。
3.3 JSP
(1)request對象
作用與ASP,ASP.net中的Request相同,JSP裡是小寫。
(2)response對象
作用與ASP,ASP.net中的Response類似,JSP裡是小寫。
(3)application對象
作用與ASP,ASP.net中的Application相同,JSP裡是小寫。
(4)session對象
作用與ASP,ASP.net中的Session相同,JSP裡是小寫。
(5)out對象
實現向用戶端的輸出,作用類似ASP,ASP.net中的Response.Write()。
(6)page對象
代表當前頁面,或者編譯後的Servlet。
4 資料庫訪問使用的對象4.1 ASP
ASP採用了ADO技術訪問資料庫。
(1)Connection類
代表了一個資料庫管理系統的串連。
Set conn = Server.CreateObject("ADODB.Connection")
(2)Command類
對串連好的資料庫執行命令。
(3)RecordSet類
記錄集。
Set rs = Server.CreateObject("ADODB.Recordset")
(4)Field類
(5)Parameter類
(6)Property類
(7)Error類
4.2 ASP.net
ASP.net採用ADO.net技術訪問資料庫。
(1)SqlConnection
與ASP中的Connection一樣。
(2)SqlCommand
與ASP中的Command一樣。
(3)DataSet
與ASP中的RecordSet類似。
4.3 JSP
JSP採用了JDBC技術來訪問資料庫。
(1)Connection類
負責資料庫的 串連。
(2)Statemaent類
類似於ASP中的Command,負責SQL語句的執行。
(3)ResultSet
結果集,類似於ASP的RecordSet,以及ASP.net的DataSet。
5 結論
通過分析比較可以看出ASP,ASP.net,JSP有著非常多的共同點,都是對Http以及SQL資料庫處理的正常化與流程化,其設計思路完全一致,只是技術實現存在細節差異。
儘管各自的開發環境、編碼規範等等也存在不小的差異,但是由於其設計理念和處理流程極其類似,所以一個項目一開始往往只有一個版本,一旦後來發展的比較好,就會陸續推出其他平台的版本,比如discuz最早就是PHP開發的,後來有了ASP.net的版本。同樣一個程式員如果真正掌握了任何一種平台,其開發經驗90%都可以用到其他平台上,很多程式員在ASP.net和JSP之間轉換隻需要2周時間,這並不奇怪。