首页 > 代码库 > ASP,ASP.net,JSP语法、内置对象对比

ASP,ASP.net,JSP语法、内置对象对比

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周时间,这并不奇怪。