本文标签:JSP编程思想
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编程就为大家介绍到这里 。
|