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 %>
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
利用JSP编程思想来做ASP编程就为大家介绍到这里。
【编辑推荐】