浅谈利用JSP编程思想来做ASP编程

开发 后端
本文将介绍如何用JSP编程思想来做ASP编程,虽说JSP在一定程度上是用来代替ASP的,但是从基本的编程思想来说还是适用的。

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。 

  1. <%   
  2. ’On Error Resume Next   
  3. Class ConnEx   
  4. publiC ConnEx   
  5. publiC DBpath ’---------Datcbase路径   
  6. publiC DBtype ’---------DatcbaseTYPE 1(ACCess) 2(SqlServer) 3(可扩充)   
  7. publiC ConnMethod ’--------连接方式 (DSN,非DSN)   
  8. publiC User   
  9. publiC Pass   
  10. Sub Class_initialize   
  11. End Sub   
  12.  
  13. Sub Init()   
  14. ConnStr = "Driver={MiCrosoft ACCess Driver (*.mdb)};dbq="&Server.MapPath("Date.mdb")   
  15. Set ConnEx = Server.CreateobjeCt("ADODB.CONNECTION")   
  16. ConnEx.Open ConnStr   
  17. CatChError("Class_Terminate")   
  18. End Sub   
  19.  
  20. Sub CatChError( Str )   
  21. If Err Then   
  22. Err.Clear   
  23. Class_Terminate()   
  24. Response.Write("捕捉到错误,程式结束!在"&Str&"处")   
  25. Response.End()   
  26. End If   
  27. End Sub   
  28.  
  29. ’******************************************   
  30. ’*通过SQL语言规则语句来查找记录是否存在,容易出错   
  31. ’******************************************   
  32.  
  33. FunCtion HasReCordBySql( Sql )   
  34. Call CheCkSql(Sql,"R")   
  35. Dim Rs,HasR   
  36. Set Rs = ConnEx.ExeCute( Sql )   
  37. CatChError("HasReordSql")   
  38. If Not (Rs.eof Or Rs.bof) Then   
  39. HasR = False   
  40. Else   
  41. HasR = True   
  42. End If   
  43. Rs.Close   
  44. Set Rs = Nothing   
  45. HasRHasReCordBySql = HasR   
  46. End FunCtion   
  47.  
  48. ’***************************************   
  49. ’*通过ID来查找记录是否存在   
  50. ’***************************************   
  51.  
  52. FunCtion HasReCordById( StrTableName , IntID )   
  53. ’CheCkValue( IntID , 1 )   
  54. Dim Rs,HasR   
  55. Sql = "SeleCt top 1 * from "&StrTableName&" Where Id = "&IntID   
  56. Call CheCkSql(Sql,"R")   
  57. Set Rs = ConnEx.ExeCute(Sql)   
  58. CatChError("HasReCordByID")   
  59. If Not (Rs.eof Or Rs.bof) Then   
  60. HasR = False   
  61. Else   
  62. HasR = True   
  63. End If   
  64. Rs.Close   
  65. Set Rs = Nothing   
  66. HasRHasReCordById = HasR   
  67. End FunCtion   
  68.  
  69. ’**********************************************   
  70. ’*通过SQL语言规则语句取得记录集   
  71. ’**********************************************   
  72. FunCtion GetRsBySql( Sql )   
  73. Call CheCkSql(Sql,"R")   
  74. Dim Rs   
  75. Set Rs = Server.CreateObjeCt("Adodb.ReCordSet")   
  76. Rs.Open Sql,ConnEx,1,1   
  77. Set GetRsBySql = Rs   
  78. End FunCtion   
  79.  
  80. ’*********************************************   
  81. ’*取得某个字段的value   
  82. ’*********************************************   
  83. FunCtion GetValueBySql( Sql )   
  84. Call CheCkSql(Sql,"R")   
  85. Dim Rs,ReturnValue   
  86. Set Rs = ConnEx.ExeCute(Sql)   
  87. CatChError("GetValueBySql")   
  88. If Not( Rs.Eof Or Rs.Bof ) Then   
  89. ReturnValue = Rs(0)   
  90. Else   
  91. ReturnValue = "没有记录"   
  92. End If   
  93. Rs.Close   
  94. Set Rs = Nothing   
  95. GetValueBySql = ReturnValue   
  96. End FunCtion   
  97.  
  98. ’============================Update,Insert====================  
  99.  
  100. ’*********************************************   
  101. ’*利用SQL语言规则修改Data   
  102. ’*********************************************   
  103. FunCtion UpdateBySql( Sql )   
  104. Call CheCkSql(Sql,"w")   
  105. ConnEx.ExeCute(Sql)   
  106. CatChError("UpdateBySql")   
  107. UpdateBySql = True   
  108. End FunCtion   
  109.  
  110. ’********************************************   
  111. ’*利用SQL语言规则语句插入Data   
  112. ’********************************************   
  113. FunCtion InsertBySql(Sql)   
  114. Call CheCkSql(Sql,"w")   
  115. ConnEx.ExeCute(Sql)   
  116. CatChError("InsertBySql")   
  117. InsertBySql = True   
  118. End FunCtion   
  119.  
  120. ’=====================Delete=====================  
  121.  
  122. ’********************************************   
  123. ’*通过SQL语言规则语句删除   
  124. ’********************************************   
  125. FunCtion DeleteBySql( Sql )   
  126. Call CheCkSql(Sql,"D")   
  127. ConnEx.ExeCute(Sql)   
  128. CatChError("DeleteBySql")   
  129. DeleteBySql = True   
  130. End FunCtion   
  131.  
  132. ’********************************************   
  133. ’*检查SQL语言规则语句权限,根据标志Flag 来检测语句拥有的权限   
  134. ’********************************************   
  135. Sub CheCkSql( Sql , Flag )   
  136. Dim StrSql,SinCounts,DouCounts,i   
  137. StrSql = LCase(Sql)   
  138. SinCounts = 0   
  139. DouCounts = 0   
  140. For i = 1 to Len(StrSql)   
  141. If Mid(StrSql,i,1) = "’" Then SinCountsSinCounts = SinCounts + 1   
  142. If Mid(StrSql,i,1) = """" Then DouConnts = DouCounts + 1   
  143. Next   
  144.  
  145. If (SinCounts Mod 2) <> 0 Or (DouCounts Mod 2) <> 0 Or Instr(StrSql,";") > 0 Then   
  146. Call Class_Terminate()   
  147. Response.Write("SQL语言规则语言规则错误!")   
  148. Response.End()   
  149. End If   
  150. SeleCt Case Flag   
  151. Case "R","r":   
  152. If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"update") Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"insert") > 0 Then   
  153. Class_Terminate()   
  154. Response.Write("权限不足,没有运行写操作的权限")   
  155. Response.End()   
  156. End If   
  157. Case "W","w":   
  158. If Instr(StrSql,"delete") > 0 Or Instr(StrSql,"drop") > 0 Or Instr(StrSql,"seleCt") > 0 Then   
  159. Class_Terminate()   
  160. Response.Write("权限不足,没有运行删除操作的权限")   
  161. Response.End()   
  162. End If   
  163. Case "D","d":   
  164. Case Else:   
  165. Response.Write("参数CheCkSql标志错误!")   
  166. End SeleCt   
  167. End Sub   
  168.  
  169. Sub Class_Terminate   
  170. If Not IsEmpty(FriendConn) Then   
  171. FriendConn.Close   
  172. Set FriendConn = Nothing   
  173. CatChError()   
  174. End If   
  175. End Sub   
  176. End Class   
  177. %> 

利用JSP编程思想来做ASP编程就为大家介绍到这里。

【编辑推荐】

  1. 构造JSP和Javabean开发和发布环境的方法
  2. JSP设计模式浅析
  3. 什么是JSP以及其强弱势
  4. JSP页面Tomcat提高性能之王道
  5. JSP教程基础之脚本的使用
责任编辑:彭凡 来源: 网易博客
相关推荐

2009-07-03 14:31:51

2009-06-30 16:51:56

2013-09-22 10:15:05

编程思想

2009-07-03 13:56:21

JSP编程技巧

2009-06-15 15:17:32

JCOMExcel编程Java

2011-06-13 12:11:06

javasocket

2011-06-13 11:23:33

javasocket

2013-06-17 11:21:27

2022-06-27 18:30:37

FP代码编程

2009-06-15 10:25:46

Java编程思想Java

2009-07-01 14:05:05

JSP邮件系统

2009-06-03 09:44:30

JSTLJSP编程

2012-05-04 09:59:10

Unix设计思想

2023-08-14 14:04:14

JavaScript函数式编程

2010-01-19 15:36:02

C++语言

2011-10-19 15:47:13

2015-06-29 14:03:07

2011-07-05 10:20:38

java

2011-06-13 10:03:19

Qt 多线程 编程

2021-07-14 13:12:51

点赞
收藏

51CTO技术栈公众号