JavaScript、ASP、ASP.Net、JSP笔记
JavaScript、ASP、ASP.Net、JSP笔记 2005-3 v1.7
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ASP中手动换行用: replace(rs("A"),"</br>", VBCRLF)
<返回> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<!--#include file="adovbs.inc" --> Dim ConnStr Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName SqlDatabaseName = "translate" '数据库名 SqlUsername = "WebCVO" '用户名 SqlPassword = "webcvo" '用户密码 SqlLocalName = "192.168.105.204" '连接名(本地用local,外地用IP) ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";" Set conn = Server.CreateObject("ADODB.Connection") conn.open ConnStr <返回> 2.连接Access数据库 strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb") set conn = server.createobject("adodb.connection") conn.open strconn <返回> 3.使用系统DSN连接数据库 Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open "DSN=test;" <返回> 4.使用数据库操作 <% exec="delete from tbl_Privileges where PrivilegeGUID="+cstr(ParaID) conn.Execute(exec) Set rs = Server.CreateObject("ADODB.Recordset") sql="select top 10 * from japanese" rs.Open sql,conn,adopenStatic while not(rs.eof) %><%=rs("word")%> <%rs.movenext wend rs.Close() Set rs = nothing %> <返回> 5.使用数据库带返回值的存储过程
6.使用数据库带返回记录集的存储过程 <% Set Comm=server.CreateObject("ADODB.Command") Set Comm.ActiveConnection=conn Comm.CommandType=adCmdStoredProc Comm.CommandText="SearchWord" '存储过程名称 Comm.Parameters.Append Comm.CreateParameter("returncode",adInteger,adParamReturnValue) Comm.Parameters.Append Comm.CreateParameter("word",adVarChar,adParamInput,30,"私") '输入参数 Set Rs = Comm.Execute() '调用执行存储过程。 While Not rs.eof %><%=rs("mean1")%><br> <%rs.movenext wend Set rs = nothing Set Comm.ActiveConnection = nothing Set Comm = nothing %> <返回> 7.用split分割字符串 str = "ftp://username:password@server" aryReturn = Split(str,":") If UBound(aryReturn)<>-1 then For i = LBound(aryReturn) To UBound(aryReturn) aryReturn(i) Next End If <返回> 8.vb和数据库中使用转义字符
<返回> 9.如何强制要求VB声明变量 在asp文件头部用Option Explicit <返回> 10.如何处理不用的对象 当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”来释放对象占用的内存,否则会因为对象太多导致WEB服务站点运行效率降低乃至崩溃,相应语句如下: <% 对象.close set对象= nothing %> <返回> 11.如何设定缓冲 (1)设定缓冲 Response.Buffer = True 在结尾写:Response.Flush (2)不允许用缓冲 <HTML> <HEAD> <META HTTP-EQUIV="REFRESH" CONTENT="5"> <TITLE> 你的标题 </TITLE> </HEAD> <BODY> 你的页面的其它部分。。。。。 </BODY> <HEAD> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> </HEAD> </HTML> HTM网页 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> 或者<META HTTP-EQUIV="expires" CONTENT="0"> ASP网页 Response.Expires = -1 Response.ExpiresAbsolute = Now() - 1 Response.cachecontrol = "no-cache"| response.addHeader "pragma" , "no-cache" response.addHeader "cache-control" , "private" PHP网页 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); <返回> 12.设定Session超时时间 这么写:Session.Timeout=60 '设定超时时间为60分钟 <返回> 13.获得访问者IP和浏览器类型等信息 本机ip<%=request.servervariables("remote_addr")%> 服务器名<%=Request.ServerVariables("SERVER_NAME")%> 服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%> 服务器端口<%=Request.ServerVariables("SERVER_PORT")%> 服务器时间<%=now%> IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%> 脚本超时时间<%=Server.ScriptTimeout%> 本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%> 服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 服务器解译引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %> 服务器操作系统<%=Request.ServerVariables("OS")%> 检查来访者是否用了代理<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then response.write "<font color=#FF0000>您通过了代理服务器,"& _"真实的IP为"&Request.ServerVariables("HTTP_X_FORWARDED_FOR") end if%> <返回> 14.将query string从一个asp文件传送到另一个 前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING")) <返回> 15.加密脚本 可以去下载一个微软的Windows Script Encoder(http://www.wrclub.net/down.aspx?id=223),它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装一个ie5就有了)才能执行。 <返回> 16.获得CPU信息 <% Set objShell = CreateObject("WScript.Shell") Set objEnv = objShell.Environment("SYSTEM") Response.Write "<H4>Number of Processors: " & objEnv("NUMBER_OF_PROCESSORS") & "</H4>" %> <返回> 17.在ASP中读取注册表的信息 通过 Windows Scripting object 的 Regread 方法,可以从注册表中读取信息。 下面的例子演示了如何得到 common files 的路径: <% Dim strPath strPath = "HKLMSOFTWAREMICROSOFTWINDOWSCURRENTVERSIONCOMMONFILESDIR" Set objShell = CreateObject("WScript.Shell") Response.Write "<b>Registry value(Common files dir):</b> " & objShell.RegRead(strPath) %> <返回> 18.取得所有的Session变量 在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来达到目标: Dim strName, iLoop For Each strName in Session.Contents Response.Write strName & " - " & Session.Contents(strName)& "<BR>" Next <返回> 19.定义数据库连接的一些常量 Const adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark Const adOpenKeyset = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark Const adOpenDynamic = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。 Const adOpenStatic = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动 Const adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改 Const adLockPessimistic = 2 '当编辑时立即锁定记录,最安全的方式 Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等 Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的 Const adCmdText = &H0001 Const adCmdTable = &H0002 <返回> 20.定义数据库的字段的初始值 在Default中用(newid()) (getdate()) <返回> 21.修改contentType并下载gif等格式 <% function dl(f,n) on error resume next set s=CreateObject("Adodb.Stream") S.Mode=3 S.Type=1 S.Open s.LoadFromFile(server.mappath(f)) if err.number>0 then response.write err.number & ":" & err.description else response.contentType="application/x-gzip" response.addheader "Content-Disposition:","attachment; filename=" & n response.binarywrite(s.Read(s.size)) end if end function call dl("012922501.gif","t1.gif") %> <返回> 22.RecordSet的基本属性和方法 rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录 <返回> 23.获得查询获得的表的各个字段的名字 For i=0 to rs.fields.count-1 response.write " "&rs(i).Name&" " Next '取字段内容 rs.movefirst while not rs.eof For i=0 to rs.Fields.count-1 response.write(rs(i)) Next rs.MoveNext wend <返回> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一、提交数据 if(!IsPostBack) }
<1>定制标签较容易,把HTML代码保存到一个文件。然后用二句话在需要的地方引用: <%@ Register TagPrefix="mycontrol" TagName="myc" Src="myUserControl.ascx"%> <2>自定义控件 和定制标签类似,只是可以自己添加属性。
(1)添加JavaScript (2)添加CustomValidator控件,并且把ClientValidateFunction设为该函数 (3)设置ControlToValidate
4.如何使得DataGrid有分页输出数据功能
使用Session和Application不要初始化,和普通的asp一样 if(Application["userCount"]==null) session用法和Application一样。
if(Request.Cookies["cookie"]==null) this.Label3.Text="Cookies is 1"; this.Label3.Text=string.Format("Cookies is {0}",cook.Value);
<返回> 按异常处理优先级排序 <返回> 12.Web打印文档
字体<%@ page lanage="java"%> <%@ page import="java.io.*","java.util.Date"%> <%@ page contentType="text/html; charset=GBK" %> <%@ page buffer="24kb"%> <返回> 2.包含文件,同时带设置参数 <jsp:param name="userName" value="kes2000"> <%@ include file="filename"%> String a=request.getParameter("userName"); out.print(a); <返回> 3.使用页面跳转并带参数 <jsp:forward page="result.jsp"> <jsp:param name="number" value="10"> </jsp:forward> <返回> 4.使用Applet <jsp:plugin type="applet" code="B.class" codebase="/myfile" jreversion="1.2" width="200" height="260" > </jsp:plugin> <返回> 5. 转为为数字 number=Double.parseDouble(textContent); <返回> 6. 读取中文 String str=request.getParameter("girl"); byte b[]=str.getBytes("ISO-8859-1"); str=new String(b); <返回> 7.Request对象(读取页面或者Form参数) request.getProtocol() getServletPath() getContentLength() getMethod() getHeader(String s) getRemoteAddr() getRemoteHost() getServerName() request.setContentType("application/msword;charset=GB2312"); <返回> 8.Response对象和out对象(输出值) response.sendRedirect("example.jsp"); setStatus(500); setStatus(200); out.print("hello"); <返回> 9.Session 和Application String s=session.getId(); setAttribute(key,value) getAttribute(key) removeAttribute(key) invalidate() getCreationTime() getLastAccessedTime() <返回> 10.JSP连接数据库
|
11.使用同步连接
if(conn!=null){
synchronized(conn){
//do something
}
}
<返回>
12.使用beans
Jsp代码 | Bean代码 |
<jsp:useBean id="jsp2BeanId" scope="session" class="myjsp.Jsp2Bean" /> <jsp:setProperty name="jsp2BeanId" property="*" /> <jsp:getProperty name="jsp2BeanId" property="sample" /> <@ import="tom.jiafei.primNumber"> |
public class Jsp2Bean { private String sample = "Start value"; //Access sample property public String getSample() { return sample; } //Access sample property public void setSample(String newValue) { if (newValue!=null) { sample = newValue; } } } |
1.用VB编写一般组件 (1)在建立工程时候,ActiveX Dll方式建立工程 (2)添加一个类,会参数如下代码 Option Explicit Private Sub Class_Initialize() '构造函数 End Sub Private Sub Class_Terminate() '析构函数 End Sub (3)添加自己的函数 Function String2Integer(data As String) If Len(data) = 1 Then String2Integer = "0" & data Else String2Integer = data End If End Function <返回> 2.用VB编写ASP组件(包括Response,Request,Session等内建对象) Visual Basic工程 在组件中命名对象 (3)自定义函数GetGUID 《3》最后定义属性 可以通过对类按右键,选择 Add -> Class Module 可视化地添加函数和属性 | |