淺談利用JSP編程思想來做ASP編程
JSP(Java Server Page)與ASP(Active Server Page)兩者都是常用的動態(tài)網頁技術,也都是可以嵌入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語言規(guī)則語句來查找記錄是否存在,容易出錯
- ’******************************************
- 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語言規(guī)則語句取得記錄集
- ’**********************************************
- 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語言規(guī)則修改Data
- ’*********************************************
- FunCtion UpdateBySql( Sql )
- Call CheCkSql(Sql,"w")
- ConnEx.ExeCute(Sql)
- CatChError("UpdateBySql")
- UpdateBySql = True
- End FunCtion
- ’********************************************
- ’*利用SQL語言規(guī)則語句插入Data
- ’********************************************
- FunCtion InsertBySql(Sql)
- Call CheCkSql(Sql,"w")
- ConnEx.ExeCute(Sql)
- CatChError("InsertBySql")
- InsertBySql = True
- End FunCtion
- ’=====================Delete=====================
- ’********************************************
- ’*通過SQL語言規(guī)則語句刪除
- ’********************************************
- FunCtion DeleteBySql( Sql )
- Call CheCkSql(Sql,"D")
- ConnEx.ExeCute(Sql)
- CatChError("DeleteBySql")
- DeleteBySql = True
- End FunCtion
- ’********************************************
- ’*檢查SQL語言規(guī)則語句權限,根據標志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語言規(guī)則語言規(guī)則錯誤!")
- 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編程就為大家介紹到這里。
【編輯推薦】