JSP(Java Server Page)与ASP(Active Server Page)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,JSP编程思想与ASP也差不多。但两者是有着本质的不同,主要从以下几个方面对其进行比较:
(1)Web服务器的支持:大多数通用的 Web服务器如:Apache、Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Personal Web Server可以支持ASP。
(2)平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。
(3)组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、Enterprises JavaBeans 和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。
(4)脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。
(5)安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全结构。
(6)与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用Data Active Objects。
(7)用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。
下面的程式功能有了个大体的FRAME,其实可以自己添加一些功能,比如开始的Datcbase连接 ,可以先设置变量然后通过INIT() 来选择不同TYPE的Datcbase。
- <%
- ’On Error Resume Next
- Class ConnEx
- publiC ConnEx
- publiC DBpath ’---------Datcbase路径
- publiC DBtype ’---------DatcbaseTYPE 1(ACCess) 2(SqlServer) 3(可扩充)
- publiC ConnMethod ’--------连接方式 (DSN,非DSN)
- publiC User
- publiC Pass
- Sub Class_initialize
- End Sub
- Sub Init()
- ConnStr = "Driver={MiCrosoft ACCess Driver (*.mdb)};dbq="&Server.MapPath("Date.mdb")
- Set ConnEx = Server.CreateobjeCt("ADODB.CONNECTION")
- ConnEx.Open ConnStr
- CatChError("Class_Terminate")
- End Sub
- Sub CatChError( Str )
- If Err Then
- Err.Clear
- Class_Terminate()
- Response.Write("捕捉到错误,程式结束!在"&Str&"处")
- Response.End()
- End If
- End Sub
- ’******************************************
- ’*通过SQL语言规则语句来查找记录是否存在,容易出错
- ’******************************************
- FunCtion HasReCordBySql( Sql )
- Call CheCkSql(Sql,"R")
- Dim Rs,HasR
- Set Rs = ConnEx.ExeCute( Sql )
- CatChError("HasReordSql")
- If Not (Rs.eof Or Rs.bof) Then
- HasR = False
- Else
- HasR = True
- End If
- Rs.Close
- Set Rs = Nothing
- HasRHasReCordBySql = HasR
- End FunCtion
- ’***************************************
- ’*通过ID来查找记录是否存在
- ’***************************************
- FunCtion HasReCordById( StrTableName , IntID )
- ’CheCkValue( IntID , 1 )
- Dim Rs,HasR
- Sql = "SeleCt top 1 * from "&StrTableName&" Where Id = "&IntID
- Call CheCkSql(Sql,"R")
- Set Rs = ConnEx.ExeCute(Sql)
- CatChError("HasReCordByID")
- If Not (Rs.eof Or Rs.bof) Then
- HasR = False
- Else
- HasR = True
- End If
- Rs.Close
- Set Rs = Nothing
- HasRHasReCordById = HasR
- End FunCtion
- ’**********************************************
- ’*通过SQL语言规则语句取得记录集
- ’**********************************************
- FunCtion GetRsBySql( Sql )
- Call CheCkSql(Sql,"R")
- Dim Rs
- Set Rs = Server.CreateObjeCt("Adodb.ReCordSet")
- Rs.Open Sql,ConnEx,1,1
- Set GetRsBySql = Rs
- End FunCtion
- ’*********************************************
- ’*取得某个字段的value
- ’*********************************************
- FunCtion GetValueBySql( Sql )
- Call CheCkSql(Sql,"R")
- Dim Rs,ReturnValue
- Set Rs = ConnEx.ExeCute(Sql)
- CatChError("GetValueBySql")
- If Not( Rs.Eof Or Rs.Bof ) Then
- ReturnValue = Rs(0)
- Else
- ReturnValue = "没有记录"
- End If
- Rs.Close
- Set Rs = Nothing
- GetValueBySql = ReturnValue
- End FunCtion
- ’============================Update,Insert====================
- ’*********************************************
- ’*利用SQL语言规则修改Data
- ’*********************************************
- FunCtion UpdateBySql( Sql )
- Call CheCkSql(Sql,"w")
- ConnEx.ExeCute(Sql)
- CatChError("UpdateBySql")
- UpdateBySql = True
- End FunCtion
- ’********************************************
- ’*利用SQL语言规则语句插入Data
- ’********************************************
- FunCtion InsertBySql(Sql)
- Call CheCkSql(Sql,"w")
- ConnEx.ExeCute(Sql)
- CatChError("InsertBySql")
- InsertBySql = True
- End FunCtion
- ’=====================Delete=====================
- ’********************************************
- ’*通过SQL语言规则语句删除
- ’********************************************
- FunCtion DeleteBySql( Sql )
- Call CheCkSql(Sql,"D")
- ConnEx.ExeCute(Sql)
- CatChError("DeleteBySql")
- DeleteBySql = True
- End FunCtion
- ’********************************************
- ’*检查SQL语言规则语句权限,根据标志Flag 来检测语句拥有的权限
- ’********************************************
- Sub CheCkSql( Sql , Flag )
- Dim StrSql,SinCounts,DouCounts,i
- StrSql = LCase(Sql)
- SinCounts = 0
- DouCounts = 0
- For i = 1 to Len(StrSql)
- If Mid(StrSql,i,1) = "’" Then SinCountsSinCounts = SinCounts + 1
- If Mid(StrSql,i,1) = """" Then DouConnts = DouCounts + 1
- Next
- If (SinCounts Mod 2) <> 0 Or (DouCounts Mod 2) <> 0 Or Instr(StrSql,";") > 0 Then
- Call Class_Terminate()
- Response.Write("SQL语言规则语言规则错误!")
- Response.End()
- End If
- SeleCt Case Flag
- Case "R","r":
- If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"update") Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"insert") > 0 Then
- Class_Terminate()
- Response.Write("权限不足,没有运行写操作的权限")
- Response.End()
- End If
- Case "W","w":
- If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"seleCt") > 0 Then
- Class_Terminate()
- Response.Write("权限不足,没有运行删除操作的权限")
- Response.End()
- End If
- Case "D","d":
- Case Else:
- Response.Write("参数CheCkSql标志错误!")
- End SeleCt
- End Sub
- Sub Class_Terminate
- If Not IsEmpty(FriendConn) Then
- FriendConn.Close
- Set FriendConn = Nothing
- CatChError()
- End If
- End Sub
- End Class
- %>
利用JSP编程思想来做ASP编程就为大家介绍到这里。
【编辑推荐】