欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
STORM--站長(cháng)筆記
JavaScript、ASP、ASP.Net、JSP筆記    2006
JavaScript

1.基本控件的使用
6.客戶(hù)端腳本的基本對象    ***
41.常用的Javascript內建類(lèi)的方法  ***
2.讓TextArea自動(dòng)換行
3.讓TextArea支持Table鍵
4.復制數據到剪貼板
5.得到當前選中的文本
7.保護自己編寫(xiě)的HTML和腳本的方法
8.IE地址欄前換成自己的圖標
9.可以在收藏夾中顯示出你的圖標
10.關(guān)閉輸入法
11.直接查看源代碼
12.在Javascript中自定義一個(gè)對象(屬性,方法) ***
13.取得控件的絕對位置
14.光標是停在文本框文字的最后
15.判斷上一頁(yè)的來(lái)源
16.最小化、最大化、關(guān)閉窗口
17.檢查一段字符串是否全由數字組成
18.獲得一個(gè)窗口的大小
19.怎么判斷是否是字符
20.檢測某個(gè)網(wǎng)站的鏈接速度
21.各種樣式的光標
22.讓TEXTAREA自適應文字的行數
23.日期減去天數等于第二個(gè)日期
24.選擇了哪一個(gè)Radio
25.獲得本頁(yè)url的request.servervariables("")集合
26.ENTER鍵可以讓光標移到下一個(gè)輸入框
27.多用途的RichEdit控件
28.引用其他網(wǎng)頁(yè)
29.常用的正則表達式
31.取得查詢(xún)字符串,然后就生成成對的數組
32.另類(lèi)的onload函數
33.取得IE的版本
34.提交表單到不同地方
35.判斷是否是整數
36.鏈接css文件和js文件
37.引用框架的內容
38.打開(kāi)沒(méi)有最大化按鈕的窗口
39.在頁(yè)面上顯示一個(gè)有邊框的Frame
40.判斷日期1是不是大于日期2
30.彈出來(lái)必須關(guān)閉才能繼續運行的提示對話(huà)框
42.如何在另一個(gè)窗體對原來(lái)窗體進(jìn)行操作 ***
43.層的隱藏與顯示
44.禁止右鍵
45.屏蔽頁(yè)面中程序運行出錯信息 **
46.得到當前顯示器的分辨率
47.定時(shí)運行特定代碼(Timer)
48.得到本頁(yè)網(wǎng)址
49.保存當前頁(yè)面的內容
50.刷新當前頁(yè)面
51.獲得當前日期


1.ASP.net中如何在二個(gè)頁(yè)面傳遞數
2.如何添加用戶(hù)自定義標簽、自定義控件、定制控件
3.添加客戶(hù)端驗證腳本
4.如何使得DataGrid有分頁(yè)輸出數據功能
5.如何寫(xiě)廣告控件的XML
6.如何利用Session和Application
7.如何利用Cookie
8.利用ASP.net上傳文件
9.Asp.net中自定義異常頁(yè)
10.Asp.net的安全認證及Web.config的配置
11.Asp網(wǎng)頁(yè)的EnableViewState屬性對網(wǎng)頁(yè)性能的影響
12.Web打印文檔
13.將Web表格輸出為word或者Excel格式的文件保存在客戶(hù)端


1.連接SQL Server數據庫
2.連接Access數據庫
3.使用系統DSN連接數據庫
4.使用數據庫操作 ***
5.使用數據庫帶返回值的存儲過(guò)程
6.使用數據庫帶返回記錄集的存儲過(guò)程
7.VB中使用split對字符串進(jìn)行切割
8.VB和數據庫中使用轉義字符
9.如何強制要求VB聲明變量
10.如何處理不用的對象
11.如何設定緩沖
12.設定Session超時(shí)時(shí)間
13.獲得訪(fǎng)問(wèn)者IP和瀏覽器類(lèi)型等信息
14.將query string從一個(gè)asp文件傳送到另一個(gè)
15.加密腳本 
16.獲得CPU信息
17.在A(yíng)SP中讀取注冊表的信息  
18.取得所有的Session變量 
19.定義數據庫連接的一些常量
20.定義數據庫的字段的初始值
21.修改contentType并下載gif等格式
22.RecordSet的基本屬性和方法
23.獲得查詢(xún)獲得的表的各個(gè)字段的名字


JSP
用VB編寫(xiě)ASP組件

1.引入其他包和設置Html參數
2.包含文件,同時(shí)帶設置參數
3.使用頁(yè)面跳轉并帶參數
4.使用Applet
5.轉為為數字
6.讀取中文
7.Request對象(讀取頁(yè)面或者Form參數)
8.Response對象和out對象(輸出值)
9.Session 和Application
10.JSP連接數據庫
11.使用同步連接
12.使用beans  

1.用VB編寫(xiě)一般組件
2.用VB編寫(xiě)ASP組件(包含request,response,Session等)
3.在VB組件里面添加對數據庫的訪(fǎng)問(wèn)
4.函數返回多個(gè)值和數組型屬性
5.在VB控件中編寫(xiě)對文件的讀寫(xiě)


JavaScript
 1.基本控件的使用


控件名.value

控件名.value

控件名[i].checked    .value 
for each ob in控件名
   if ob.checked then 
      window.alert ob.value
next

控件名.checked    .value

 
   單行         多行         多選
添加選項
ExpList.add(new Option("New Option","3"));
刪除選項
ExpList.remove(ExpList.selectedIndex); 
設置當前選項位置
ExpList.selectedIndex=ExpList.length-1;
循環(huán)整個(gè)選項
并判斷是否被選擇
for(i=0;i<ExpList.options.length;i++) {
  if(ExpList.options[i].selected){
     //ExpList.options[i].text; 
     //ExpList.options[i].value; 
  }
}
單個(gè)選項的值
ExpList.options[i].text; 
ExpList.options[i].value;
<span id="SomePlace1"></span>
<div id="SomePlace1"></div>
重新設計包含的html
SomePlace1.innerHTML="任意html字符串"
讓該空間的內容消失
SomePlace1.style.display="none"; 
讓該空間的內容顯示
SomePlace1.style.display="block";
鼠標滑過(guò)出現提示
title="Help"
<input type="hidden" name="MyValueName" value="123">
控件名.value
跟隨事件Event(聲明方式特殊)
<div id=hello1 style=position:absolute>太過(guò)分了!吃飯不叫我</div>
<SCRIPT for=document EVENT=onmousemove>
document_onmousemove();
function document_onmousemove() { 
  hello1.style.left=event.x+10;
  hello1.style.top=event.y+10;
}
</SCRIPT>

<返回>

2.讓TextArea自動(dòng)換行

  使用TextArea的Wrap屬性

Wrap may be set to one of the following values: 
OFF - Default, lines are not wrapped. 
PHYSICAL - Wrap lines and place new line characters where the line wraps. 
VIRTUAL - Wrap lines on the screen, but receive them as one line. 
ASP中手動(dòng)換行用: replace(rs("A"),"</br>", VBCRLF) 
str=request.querystring("text1")
str=Replace(str, Chr(32), " ")
‘把空格換成 標志
str=Replace(str, vbCrLf, "<br>")
‘把回車(chē)換行符換成<br>標志
調出時(shí)再轉過(guò)來(lái)就好了

<返回>

3.讓TextArea支持Table鍵
<SCRIPT LANGUAGE="JavaScript">
<!--
function testTab()
{
   var sel = document.selection.createRange();
   var mytext= sel.text;
   var i,j,k;
   if (event.shiftKey && event.keyCode == 9)
   {
      arr=mytext.split(String.fromCharCode(13,10))
      mytext="" 

      for(k=0;k<arr.length;k++)
      {
         for (j=1; j<=4;j++)
         {
            if(arr[k].substr(0,1)=="\u0020")
            {
               arr[k]=arr[k].slice(1)
            }
         }
         mytext += arr[k] + ((k==(arr.length-1))? "" : String.fromCharCode(13,10));
      }
      with(sel){
         sel.text = mytext;
         collapse(true)
         moveEnd("character",0)
         moveStart("character",(mytext.length ) * -1)
         select()
      }

      window.event.cancelBubble = true; 
      event.returnValue = false;
      return;
   } 
   if (event.keyCode == 9)
   {
      arr=mytext.split(String.fromCharCode(13,10))
      mytext=""
      for(j=0;j<arr.length;j++)
      {
         mytext += "\u0020\u0020\u0020\u0020" + arr[j] + ((j==(arr.length-1))? "" : String.fromCharCode(13,10));
      }
      with(sel){
         sel.text = mytext;
         collapse(true)
         moveEnd("character",0)
         moveStart("character",(mytext.length -4) * -1)
         select()
      }

      window.event.cancelBubble = true; 
      event.returnValue = false;
      return;
   }
}
//-->
</SCRIPT>

<返回>

4.復制數據到剪貼板

 JM_cc(txt)

 window.clipboardData.setData("Text", txt);
 global.focus();
 document.execCommand(‘Paste‘);
 window.clipboardData.setData("Text", old);

<返回>

5.得到當前選中的文本

var sel = document.selection.createRange(); 
var mytext= sel.text;  //當前選中的文本


var e = event.srcElement;  //設置文本為選中
var r =e.createTextRange();
r.moveStart(‘character‘,e.value.length);
r.collapse(true);
r.select();

<返回>

6.客戶(hù)端腳本的基本對象

navigator 
screen 
window 
history 
location 
frames[]; Frame 
document 
anchors[]; links[]; Link 
applets[] 
embeds[] 
forms[]; Form 
Button 
Checkbox 
elements[]; Element 
Hidden 
Password 
Radio 
Reset 
Select 
options[]; Option 
Submit 
Text 
Textarea 
images[]; Image 

more >>>
瀏覽器對象
屏幕對象
窗口對象
 歷史對象
 地址對象
 框架對象
 文檔對象
  連接對象
  Java小程序對象
  插件對象
  表單對象
   按鈕對象
   復選框對象
   表單元素對象
   隱藏對象
   密碼輸入區對象
   單選域對象
   重置按鈕對象
   選擇區(下拉菜單、列表)對象
    選擇項對象
   提交按鈕對象
   文本框對象
   多行文本輸入區對象
  圖片對象 

<返回>

7.保護自己編寫(xiě)的HTML和腳本的方法
  (1). oncontextmenu="window.event.returnValue=false" 將徹底屏蔽鼠標右鍵
    <table border oncontextmenu=return(false)><td>no</table> 可用于Table
  (2). <body onselectstart="return false"> 取消選取、防止復制
  (3). onpaste="return false" 不準粘貼
  (4). oncopy="return false;" oncut="return false;" 防止復制
  (5). 防止被人frame
      <SCRIPT LANGUAGE=JAVASCRIPT><!-- 
         if (top.location != self.location)top.location=self.location;
       // -->
      </SCRIPT>
  (6). 永遠都會(huì )帶著(zhù)框架
     <script language="JavaScript"><!--
        if (window == top)top.location.href = "frames.htm"; //frames.htm為框架網(wǎng)頁(yè)
     // --></script>
  (7).網(wǎng)頁(yè)將不能被另存為
     <noscript><iframe src=*.html></iframe></noscript> 

<返回>

8.IE地址欄前換成自己的圖標
 <link rel="Shortcut Icon" href="favicon.ico"> 

<返回>

9.可以在收藏夾中顯示出你的圖標

 <link rel="Bookmark" href="favicon.ico"> 

<返回>

10.關(guān)閉輸入法

 <input style="ime-mode:disabled"> 

<返回>

11.直接查看源代碼
 
 <input type=button value=查看網(wǎng)頁(yè)源代碼 onclick="window.location = ‘view-source:‘+ ‘http://www.csdn.net/‘">

<返回>

12.在Javascript中定義一個(gè)對象(屬性,方法)

function pasta(grain, width, hasEgg) { 
    this.grain = grain; 
    this.width = width; 
    this.hasEgg = hasEgg; 
    this.toString = pastaToString; 
}

function pastaToString() { 
    return "Grain: " + this.grain + "\n" + "Width: " + this.width + "\n" + "Egg?: " + Boolean(this.hasEgg); 
}

var P1=new pasta(3,3,false);

<返回>

13. 取得控件的絕對位置

//Javascript
<script language="Javascript">
function getIE(e){
   var t=e.offsetTop;
   var l=e.offsetLeft;
   while(e=e.offsetParent){
      t+=e.offsetTop;
      l+=e.offsetLeft;
   }
   alert("top="+t+"\nleft="+l);
}
</script>

<返回>

14. 光標是停在文本框文字的最后

<script language="javascript">
function cc()
{
   var e = event.srcElement;
   var r =e.createTextRange();
   r.moveStart(‘character‘,e.value.length);
   r.collapse(true);
   r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

<返回>

15. 判斷上一頁(yè)的來(lái)源

asp:
  request.servervariables("HTTP_REFERER")

javascript:
  document.referrer

<返回>

16. 最小化、最大化、關(guān)閉窗口

<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>

<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=關(guān)閉 onclick=hh3.Click()>
本例適用于IE

<返回>

17. 檢查一段字符串是否全由數字組成

<script language="Javascript"><!--
function checkNum(str){return str.match(/\D/)==null}
// --></script>

<返回>

18. 獲得一個(gè)窗口的大小

document.body.clientWidth,document.body.clientHeight

<返回>

19. 怎么判斷是否是字符

if (/[^\x00-\xff]/g.test(s))
  alert("含有漢字");
else
  alert("全是字符");

<返回>

20. 檢測某個(gè)網(wǎng)站的鏈接速度

把如下代碼加入<body>區域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1

var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"

function butt(){
   document.write("<form name=autof>")
   for(var i=1;i<autourl.length;i++)
      document.write("<input type=text name=txt"+i+" size=10 value=測試中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO onclick=window.open(this.form.url"+i+".value)><br/>")
   document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
   document.forms[0]["url"+b].value=url
   if(tim>200)
   {
      document.forms[0]["txt"+b].value="鏈接超時(shí)"
   }
   else
   {
      document.forms[0]["txt"+b].value="時(shí)間"+tim/10+"秒"
   }
   b++
}
function run()
{
   for(var i=1;i<autourl.length;i++)
      document.write("<img src=http://"+autourl[i]+"/"+Math.random()+" width=1 height=1 onerror=auto(‘http://"+autourl[i]+"‘)>")
}
run()</script>

<返回>

21. 各種樣式的光標

auto :標準光標
default :標準箭頭
hand :手形光標
wait :等待光標
text :I形光標
vertical-text :水平I形光標
no-drop :不可拖動(dòng)光標
not-allowed :無(wú)效光標
help :?幫助光標
all-scroll :三角方向標
move :移動(dòng)標
crosshair :十字標
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

<返回>

22.讓TEXTAREA自適應文字的行數

<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight"></textarea>

<返回>

23. 日期減去天數等于第二個(gè)日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上錯誤處理
   var a = new Date(dd)
   a = a.valueOf()
   a = a - dadd * 24 * 60 * 60 * 1000
   a = new Date(a)
   alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

<返回>

24. 選擇了哪一個(gè)Radio

<HTML>
<script language="vbscript">
function checkme()
   for each ob in radio1
   if ob.checked then 
      window.alert ob.value
   next
end function
</script>
<BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

<返回>

25.獲得本頁(yè)url的request.servervariables("")集合

Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD><TD><B>Value</B></TD></TR>"
for each ob in Request.ServerVariables
   Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write "</TABLE>"

<返回>

26.ENTER鍵可以讓光標移到下一個(gè)輸入框

<input onkeydown="if(event.keyCode==13)event.keyCode=9">

<返回>

28.引用其他網(wǎng)頁(yè)

<table width=100% border="0"><tr><td><script language="JavaScript" location="http://91down.7161.net" id="nd91down" src="http://91down.7161.net/js/new1-1.htm"></script></td><td><script language="JavaScript" location="http://91down.7161.net" id="nd91down" src="http://91down.7161.net/js/new1-2.htm"></script></td></tr></table>

<返回>

29.常用的正則表達式

匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網(wǎng)址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

(1)應用:計算字符串的長(cháng)度(一個(gè)雙字節字符長(cháng)度計2,ASCII字符計1)         
    String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

(2)應用:javascript中沒(méi)有像vbscript那樣的trim函數,我們就可以利用這個(gè)表達式來(lái)實(shí)現
   String.prototype.trim = function()
   {
      return this.replace(/(^\s*)|(\s*$)/g, "");
   }
(3)應用:利用正則表達式分解和轉換IP地址
   function IP2V(ip) //IP地址轉換成對應數值
   {
      re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式
      if(re.test(ip))
      {
         return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
      }
      else
      {
         throw new Error("Not a valid IP address!")
      }
   }
(4)應用:從URL地址中提取文件名的javascript程序
   s="http://www.9499.net/page1.htm";
   s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") ; //Page1.htm
(5)應用:利用正則表達式限制網(wǎng)頁(yè)表單里的文本框輸入內容
   用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^\u4E00-\u9FA5]/g,‘‘))"
   用正則表達式限制只能輸入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^\uFF00-\uFFFF]/g,‘‘))"
   用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^\d]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^\d]/g,‘‘))"
   用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/[\W]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^\d]/g,‘‘))" 

<返回>

30.彈出來(lái)提示對話(huà)框
window.showModalDialog(url); 

<返回>

31.取得查詢(xún)字符串,然后就生成成對的數組
var argstr = window.top.location.search.substring(1,window.top.location.search.length);
var args = argstr.split(‘&‘); 

<返回>

32.另類(lèi)的onload函數
<SCRIPT FOR=window event=onload>
try
{
  Start();
}
catch (exception)

}
</script>

<返回>

33.取得IE的版本
var ieVer = parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE ")+5, navigator.appVersion.length))
var isIE6 = ieVer >= 6.0

<返回>

34.提交表單
// aimForm 為表單名    aimPage為提交到的頁(yè)

//提交表單到新建的網(wǎng)頁(yè)
function SubmitFormToNewPage(aimForm,aimPage){
   aimForm.method="POST";
   aimForm.target="_blank";
   aimForm.action=aimPage;
   aimForm.submit();
}

//在本地提交表單
function SubmitFormToLocalPage(aimForm,aimPage){
   aimForm.method="POST";
   aimForm.target="_self";
   aimForm.action=aimPage;
   aimForm.submit();
}


<返回>

35.判斷是否是整數
function IsNum(s)  //整數
{
   if(s=="null"||s=="undefined"||s.length<1)
      return false;
   if(isNaN(parseInt(s)))
      return false;
   else
   if((parseInt(s)+"").length!=s.length)
      return false;
   else
      return true;
}

function IsNumber(JudgeNum){  //判斷大于0的數
   var JudgeStr=JudgeNum.toString();
   for (var i=0;i<JudgeStr.length;i++) {
      var oneChar=JudgeStr.charAt(i);

      if (oneChar<"0" || oneChar >"9"){
         return false;
      }
   }
   return true;
}

<返回>

36.鏈接css文件和js文件
<link rel="stylesheet" href="../css/style.css" type="text/css">
<script language="javascript" src="../includes/jslib.js" ></script>

<返回>

37.引用框架的內容
window.top.frames["mainFrame"].location.href=s;
在IFRAME標簽中引用框架的內容
parent.frames["mainFrame"].location.href
在窗口中引用IFrame中的內容
window.top.frames["mainFrame"].confFrame.location.href

<返回>

38.打開(kāi)沒(méi)有最大化按鈕的窗口
window.open("http://www.google.com","","width=250,height=220,scrollbars=no,resizable=no,center=yes");


<返回>

39.在頁(yè)面上顯示一個(gè)有邊框的Frame
<fieldset style="width:500;height:100">
<legend>標題</legend> 
具體內容
</fieldset>

<返回>

40.判斷日期1是不是大于日期2

function IsDate1AfterThanDate2(year1,month1,day1,year2,month2,day2){
   var iFrom=Date.parse(month1+"-"+day1+"-"+year1);
   var iTo=Date.parse(month2+"-"+day2+"-"+year2);
   if(iFrom>iTo)
      return true;
   else
      return false;
}

function IsDate(year,month,day){ 
   if( (!IsNumber(year))||(year.length!=4))
      return false;
   if( (!IsNumber(month))||(month>12)||(month<1) )
      return false;
   if( (!IsNumber(day))||(day>31)||(day<1) )
      return false; 

   var myDate=new Date();
      myDate.setFullYear(year,month-1,day); 
   if (isNaN(myDate.getFullYear())){
      return false;
   }
   else{
      if( (myDate.getFullYear()!=year)||(myDate.getDate()!=day)||(myDate.getMonth()!=(month-1).toString()) )
         return false; 
   } 
      return true; 
}

function IsNumber(JudgeNum){
   var JudgeStr=JudgeNum.toString();
   for (var i=0;i<JudgeStr.length;i++) {
      var oneChar=JudgeStr.charAt(i);

      if (oneChar<"0" || oneChar >"9"){
         return false;
      }
   }
   return true;
}

<返回>

41.常用的Javascript內建類(lèi)的方法

對象
方法或屬性
意義
例子
Array
length
表示數組大小,也可以通過(guò)該屬性動(dòng)態(tài)調整數組大小。設置可以不調整它直接擴大數組。
var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[20] = "12";
concat
把兩個(gè)數組合并
a = new Array(1,2,3);
b = new Array(4,5,6);
a = a. concat(b)
join
把數組變?yōu)樽址?br>   a = new Array(0,1,2,3,4);
   b = a.join("-");
Date
Date.parse(dateVal)
將日期轉為數字,用于比較兩個(gè)日期的大小。dateVal格式為month+day+year
iFrom=Date.parse(“10-1-2004”);
setFullYear (year,month-1,day)
用于判斷3個(gè)字符串合起來(lái)是不是日期或者判斷該天是不是存在。這里month從0開(kāi)始,故和實(shí)際值差1
myDate.setFullYear(year,month-1,day);
if (isNaN(myDate.getFullYear())){
      return false;
}
else{
  if( (myDate.getFullYear()!=year)||
(myDate.getDate()!=day)||
(myDate.getMonth()!=(month-1) )
      return false;  
}
Date()
獲得當前時(shí)間
d = new Date();                           
Global (全局類(lèi),引用方法可以不要帶Global.)
isNaN
當從字符到日期轉換失敗,或者從字符到數字轉換失敗,都返回NaN。用isNaN可以判斷返回值是不是NaN
 
parseInt
將字符串轉換為整數,轉換失敗返回NaN或者盡量轉換。所以用它來(lái)判斷是不是數字,還要加上判斷轉化后長(cháng)度是不是一樣
parseInt("abc")     // 返回 NaN。
parseInt("12abc")   // 返回 12。
parseInt("12")   // 返回 12
parseFloat
轉為實(shí)數
 
String
主要函數和Java或者C#一樣
replace
替代某個(gè)字符。如果僅替代一個(gè)和C#一樣,如果要替代全部某字符,就得用到了匹配串
  re=/#/g; 
  str=str.replace(re,"<br>");


把#用<br>代替
split
將某個(gè)字符串按指定間隔符分割
var s = "The rain in Spain";
ss = s.split(" ");  //ss是一個(gè)數組

<返回>

42.如何在另一個(gè)窗體對原來(lái)窗體進(jìn)行操作

  (1)對用window.open打開(kāi)的新窗體,用window.opener來(lái)訪(fǎng)問(wèn)原來(lái)窗體的對象。例如重新加載頁(yè)面 window.opener.location.reload();  可以通過(guò)window.opener.varName 來(lái)訪(fǎng)問(wèn)原變量。
  (2)對用showModalDialog打開(kāi)的新窗體
     (主頁(yè)面)   var returnvalue=window.showModalDialog(‘2.htm‘,this,"status=no; help=no; dialogWidth=330px; dialogHeight=305px;");  //第二個(gè)參數傳入本窗體
     (子頁(yè)面)   window.dialogArguments.varName 來(lái)訪(fǎng)問(wèn)原變量
                window.returnValue=***         來(lái)設定returnvalue的值
<返回>

43.層的隱藏與顯示

只要設置style的display屬性即可。比如<div style="display:none" id="MyDiv">隱藏的層</div>
(1)如果要顯示它可以通過(guò)腳本來(lái)控制    window.document.getElementById("MyDiv").style.display = "";
(2)如果要隱藏它可以通過(guò)腳本來(lái)控制    window.document.getElementById("MyDiv").style.display = "none";

<返回>

44.禁止右鍵

<body oncontextmenu="return false">

<返回>

45.屏蔽頁(yè)面中程序運行出錯信息

window.onerror = function()
{
   return true;
}
try{
......
}
catch(e){}
<返回>
46.得到當前顯示器的分辨率

window.srceen.width 得到屏幕的寬度
window.srceen.height 得到屏幕的高度
如果當前分辨率為800*600,window.srceen.width是800,window.srceen.height是600
<返回>

47.定時(shí)運行特定代碼

setTimeout(Code,Timeout);
setInterval(Code,Timeout);
Code是一段字符串,里邊是js代碼,Timeout是時(shí)間間隔,單位是微秒
setTimeout是從現在算起多少微秒后運行該代碼(只運行一次)
setInterval是每隔多少微秒運行一次代碼

<返回>

48.得到本頁(yè)網(wǎng)址

var Url = window.location.href;

<返回>

49.保存當前頁(yè)面的內容

document.execCommand("SaveAs","","C:\\index.htm");  
//execCommand實(shí)際上是一個(gè)功能強大的函數,一般的編輯器都是用其實(shí)現。詳見(jiàn) http://www.51js.com/viewthread.php?tid=13450&fpage=1&highlight=execCommand

<返回>

50.刷新當前頁(yè)面

window.location.reload();
<返回>

51.獲得當前日期

var d; d = new Date(); 
alert (d.getMonth() + 1); // 獲取月份。 
alert (d.getDate()); // 獲取日。 
alert (d.getYear()); // 獲取年份。

<返回>

ASP
1.連接SQL Server數據庫

<!--#include file="adovbs.inc" -->
Dim ConnStr
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "translate"       ‘數據庫名
SqlUsername = "WebCVO"              ‘用戶(hù)名
SqlPassword = "webcvo"              ‘用戶(hù)密碼
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.使用數據庫帶返回值的存儲過(guò)程

<%
Set Comm=server.CreateObject("ADODB.Command") 
Set Comm.ActiveConnection=conn 
Comm.CommandType=adCmdStoredProc 
Comm.CommandText="ProductsInfo" ‘存儲過(guò)程名稱(chēng)
Comm.Parameters.Append Comm.CreateParameter("returncode",adInteger,adParamReturnValue)
Comm.Parameters.Append Comm.CreateParameter("word",adVarChar,adParamInput,30,"愛(ài)情") ‘輸入參數
Comm.Parameters.Append Comm.CreateParameter("ID",adinteger,adParamInput,4,45)
Comm.Parameters.Append Comm.CreateParameter("mean1",adVarChar,adParamOutput,30) ‘輸出參數
Comm.Execute ‘調用執行存儲過(guò)程。
rs=Comm.parameters("mean1").value ‘返回參數
%><%=rs%>
<%
Set rs = nothing 
Set Comm.ActiveConnection = nothing 
Set Comm = nothing 
%>
adEmpty
adTinyInt
adSmallInt
adInteger
adBigInt
adUnsignedTinyInt
adUnsignedSmallInt
adUnsignedInt
adUnsignedBigInt
adSingle
adDouble
adCurrency
adDecimal
adNumeric
adBoolean
adError
adUserDefined
adVariant
adGUID
adDATE
adDBDate
adDBTime
adDBTimeStamp
adBSTR
adChar
adVarChar
adLongVarChar
adWChar
adVarWChar
adLongVarWChar
adBinary
adVarBinary
adLongVarBinary
adChapter
adPropVariant
adIDispatch
adIUnknown
<返回>

6.使用數據庫帶返回記錄集的存儲過(guò)程
<%
Set Comm=server.CreateObject("ADODB.Command") 
Set Comm.ActiveConnection=conn 
Comm.CommandType=adCmdStoredProc 
Comm.CommandText="SearchWord" ‘存儲過(guò)程名稱(chēng)
Comm.Parameters.Append Comm.CreateParameter("returncode",adInteger,adParamReturnValue)
Comm.Parameters.Append Comm.CreateParameter("word",adVarChar,adParamInput,30,"私") ‘輸入參數
Set Rs = Comm.Execute() ‘調用執行存儲過(guò)程。
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和數據庫中使用轉義字符

有些字符不轉義,顯示時(shí)候會(huì )出錯

HTML
ASP
SQL查詢(xún)
   FormatInSql = replace(tmpStr,"<","<")       
   FormatInSql = replace(tmpStr,">",">")       
   FormatInSql = replace(tmpStr,chr(13),"<br/>")
   FormatInSql = replace(tmpStr," "," ")     
   FormatInSql = replace(tmpStr,"‘","'")     
FormatInSql = replace(tmpStr,chr(34),"""")  
str=  " id=""20""  "          
reString=chr(13)+chr(10)      
str=replace(str,reString,"")
CammandParaName=replace(CammandParaName,"‘","‘‘")

<返回>

9.如何強制要求VB聲明變量

    在asp文件頭部用Option Explicit

<返回>

10.如何處理不用的對象

  當使用完對象后,首先使用Close方法來(lái)釋放對象所占用的系統資源;然后設置對象值為“nothing”來(lái)釋放對象占用的內存,否則會(huì )因為對象太多導致WEB服務(wù)站點(diǎn)運行效率降低乃至崩潰,相應語(yǔ)句如下:
  <%
  對象.close
  set對象= nothing
  %>

<返回>

11.如何設定緩沖

  (1)設定緩沖
    Response.Buffer = True 
    在結尾寫(xiě):Response.Flush 
  (2)不允許用緩沖
   <HTML> 
   <HEAD> 
     <META HTTP-EQUIV="REFRESH" CONTENT="5"> 
     <TITLE> 你的標題 </TITLE> 
   </HEAD> 
   <BODY> 
      你的頁(yè)面的其它部分。。。。。 
   </BODY> 
   <HEAD> 
     <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 
   </HEAD> 
   </HTML>

     HTM網(wǎng)頁(yè)
      <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網(wǎng)頁(yè)
      Response.Expires = -1
      Response.ExpiresAbsolute = Now() - 1
      Response.cachecontrol = "no-cache"|

      response.addHeader "pragma" , "no-cache"
      response.addHeader "cache-control" , "private"

     PHP網(wǎng)頁(yè)
      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
      header("Cache-Control: no-cache, must-revalidate");
      header("Pragma: no-cache");

<返回>

12.設定Session超時(shí)時(shí)間

這么寫(xiě):Session.Timeout=60 ‘設定超時(shí)時(shí)間為60分鐘 

<返回>

13.獲得訪(fǎng)問(wèn)者IP和瀏覽器類(lèi)型等信息  

本機ip<%=request.servervariables("remote_addr")%>
服務(wù)器名<%=Request.ServerVariables("SERVER_NAME")%>
服務(wù)器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服務(wù)器端口<%=Request.ServerVariables("SERVER_PORT")%>
服務(wù)器時(shí)間<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
腳本超時(shí)時(shí)間<%=Server.ScriptTimeout%>
本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服務(wù)器CPU數量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服務(wù)器解譯引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服務(wù)器操作系統<%=Request.ServerVariables("OS")%>
檢查來(lái)訪(fǎng)者是否用了代理<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
                              response.write "<font color=#FF0000>您通過(guò)了代理服務(wù)器,"& _"真實(shí)的IP為"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
                        end if%>
<返回>

14.將query string從一個(gè)asp文件傳送到另一個(gè) 

前者文件加入下句: 
Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING")) 

<返回>

15.加密腳本

可以去下載一個(gè)微軟的Windows Script Encoder(http://www.wrclub.net/down.aspx?id=223),它可以對asp的腳本和客戶(hù)端javascript/vbscript腳本進(jìn)行加密。。。不過(guò)客戶(hù)端加密后,只有ie5才能執行,服務(wù)器端腳本加密后,只有服務(wù)器上安裝有script engine 5(裝一個(gè)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.在A(yíng)SP中讀取注冊表的信息  

通過(guò) 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變量 

  在程序調試中,有時(shí)候需要知道有多少Session變量在使用,她們的值如何?由于Session對象提供一個(gè)稱(chēng)為Contents的集合(Collection),我們可以通過(guò)For...Each循環(huán)來(lái)達到目標: 
Dim strName, iLoop 
For Each strName in Session.Contents 
Response.Write strName & " - " & Session.Contents(strName)& "<BR>" 
Next 

<返回>


19.定義數據庫連接的一些常量

Const adOpenForwardOnly = 0 ‘游標只向前瀏覽記錄,不支持分頁(yè)、Recordset、BookMark
Const adOpenKeyset = 1 ‘鍵集游標,其他用戶(hù)對記錄說(shuō)做的修改將反映到記錄集中,但其他用戶(hù)增加或刪除記錄不會(huì )反映到記錄集中。支持分頁(yè)、Recordset、BookMark
Const adOpenDynamic = 2 ‘動(dòng)態(tài)游標功能最強,但耗資源也最多。用戶(hù)對記錄說(shuō)做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
Const adOpenStatic = 3 ‘靜態(tài)游標,只是數據的一個(gè)快照,用戶(hù)對記錄說(shuō)做的修改,增加或刪除記錄都不會(huì )反映到記錄集中。支持向前或向后移動(dòng)

Const adLockReadOnly = 1 ‘鎖定類(lèi)型,默認的,只讀,不能作任何修改
Const adLockPessimistic = 2 ‘當編輯時(shí)立即鎖定記錄,最安全的方式
Const adLockOptimistic = 3 ‘只有在調用Update方法時(shí)才鎖定記錄集,而在此前的其他操作仍可對當前記錄進(jìn)行更改、插入和刪除等
Const adLockBatchOptimistic = 4 ‘當編輯時(shí)記錄不會(huì )被鎖定,而更改、插入和刪除是在批處理方式下完成的

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頁(yè)的第一行 
rs.pagesize=N 設置每頁(yè)為N條記錄 
rs.pagecount 根據 pagesize 的設置返回總頁(yè)數 
rs.recordcount 返回記錄總數  
rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否 
rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否 
rs.delete 刪除當前記錄,但記錄指針不會(huì )向下移動(dòng) 
rs.addnew 添加記錄到數據表末端 
rs.update 更新數據表記錄 

<返回>

23.獲得查詢(xún)獲得的表的各個(gè)字段的名字

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

<返回>

Asp.net

1.ASP.net中如何在二個(gè)頁(yè)面傳遞數據

一、提交數據
(1) 用服務(wù)器端控件后,再利用Server.Execute("send4.aspx"); 或者Server.Transfer("receive1.aspx"); 提交。前者仍然保持原有的web控件,后者不保存。
(2) 寫(xiě)在URL參數里Response.Redirect("receive3.aspx?name=" + this.TextBox1.Text);
(3) 通過(guò)HTML控件,加入帶有action的form。

二、接收數據
(1) 按類(lèi)接收數據
  if(Context.Handler is MyWebExample.send4)
  {
    send4 send = (send4)Context.Handler;
    Response.Write("Name:"+((TextBox)send.FindControl("TextBox1")).Text+"<p>");
  }
(2) 從URL中接收
  if(!IsPostBack)
  {
    Request.QueryString["text1"]
  }
(3) 從Form中接收Request.Form["text1"]
(4) 作為參數籠統接收Request.Params["text1"]

<返回>


2.如何添加用戶(hù)自定義標簽、自定義控件、定制控件

 <1>定制標簽較容易,把HTML代碼保存到一個(gè)文件。然后用二句話(huà)在需要的地方引用:
    <%@ Register TagPrefix="mycontrol" TagName="myc" Src="myUserControl.ascx"%>
    <mycontrol:myc runat="server" id="Myc1"></mycontrol:myc>
 <2>自定義控件
    和定制標簽類(lèi)似,只是可以自己添加屬性。
    

<返回>


3.添加客戶(hù)端驗證腳本

(1)添加JavaScript
   <script language="javascript">
   function ClientCheck(source,arguments)
   {
      if(arguments.Value<1 || arguments.Value>100 )
      {
         arguments.IsValid=false;
         return false;
      }
      else
      {
         arguments.IsValid=true;
         return true;
      }
   }
   </script>
(2)添加CustomValidator控件,并且把ClientValidateFunction設為該函數
(3)設置ControlToValidate

<返回>


4.如何使得DataGrid有分頁(yè)輸出數據功能

(1).對DataGrid按右鍵,在彈出菜單的“屬性生成器”中可以設置分頁(yè)。
(2).接著(zhù)對控件添加PageIndexChanged事件。并且輸入以下代碼
   private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
   {
      DataGrid1.EditItemIndex = -1;
      DataGrid1.CurrentPageIndex = e.NewPageIndex;
      DataGrid1.DataBind();
   }

<返回>

5.如何寫(xiě)廣告控件的XML

<?xml version="1.0" encoding="utf-8" ?> 
<Advertisements>
<Ad>
   <ImageUrl></ImageUrl>
   <NavigateUrl>http://www.neusoft.com</NavigateUrl>
   <AlternateText>歡迎</AlternateText>
   <Keyword>Keyword</Keyword>
   <Impressions>50</Impressions>
</Ad>
</Advertisements>

<返回>


6.如何利用Session和Application

使用Session和Application不要初始化,和普通的asp一樣
   if(Application["userCount"]==null)
      Application["userCount"]=0; 
   else
      Application["userCount"]=Convert.ToInt32(Application["userCount"])+1;
session用法和Application一樣。

<返回>


7.如何利用Cookie

   if(Request.Cookies["cookie"]==null)
   {
      HttpCookie cookie = new HttpCookie("cookie","1"); 
      Response.Cookies.Add(cookie);
      this.Label3.Text="Cookies is 1";
   }
   else
   {
      HttpCookie cook = Request.Cookies["cookie"];

      Response.Cookies["cookie"].Value=(Int32.Parse(cook.Value)+1).ToString();
      this.Label3.Text=string.Format("Cookies is {0}",cook.Value);
   }

<返回>

8.利用ASP.net上傳文件

  1.從HTML控件欄中拖入一個(gè)文件瀏覽控件
  2.設置該控件在服務(wù)器端運行
  3.給它的上傳添加代碼
   string fileName=this.File1.PostedFile.FileName;
   string UploadFileName=Request.MapPath(Request.ApplicationPath+"\\"+ System.IO.Path.GetFileName(fileName));
   this.File1.PostedFile.SaveAs(UploadFileName);

<返回>

9.在A(yíng)sp.net中自定義異常頁(yè)面
  按異常處理優(yōu)先級排序
  (0)在Global.asax的Application_Error添加代碼
    protected void Application_Error(Object sender, EventArgs e) 
    { 
        Context.ClearError();
        Response.Write("Error"); 
        Response.Redirect("errorpage.htm"); 
    }
  (1)后臺代碼中的WebForm1_Error
     aspx頁(yè)面的屬性中UI.Page的Error事件中添加異常處理代碼
     private void WebForm1_Error(object sender, System.EventArgs e)
     {
        Exception ex=Server.GetLastError();
        Session["error"]=ex.Message;
        Server.ClearError();
        Response.Redirect("error.aspx");
     }
  (2)在html代碼中加入ErrorPage
     ErrorPage="http://www.21cn.com"
  (3)在Web.config中添加異常處理的頁(yè)面
    <customErrors mode="On" defaultRedirect="error.aspx">
    <error statusCode="401" redirect="error.aspx"/>
    <error statusCode="404" redirect="http://www.sina.com.cn"/>
    </customErrors>
  (4)在IIS中設置異常處理頁(yè)

<返回>

10.Asp.net的安全認證及Web.config的配置

 (1)在Web.config的配置    
   在<system.web>中修改選項
     驗證模式設為Form,并且驗證頁(yè)為
      <authentication mode="Forms">
        <forms loginUrl="Login.aspx" />
      </authentication>
     不允許匿名用戶(hù)
      <authorization>
        <deny users="?" /> 
      </authorization>

   在</system.web>后加入不要驗證就能使用數據庫的頁(yè)面,用于在該頁(yè)訪(fǎng)問(wèn)數據庫,察看是否存在該用戶(hù)。
     <location path="Reg.aspx">
       <system.web>
         <authorization>
           <allow users="*"/>
         </authorization>
       </system.web>
     </location>

  (2)在代碼中按普通方式,例如要求對方輸入信息查找數據庫或者XML進(jìn)行驗證,驗證通過(guò)后,執行這句就表示驗證通過(guò)同時(shí)跳會(huì )開(kāi)始進(jìn)入的頁(yè)面
      System.Web.Security.FormsAuthentication.RedirectFromLoginPage(userName,true);
      注銷(xiāo)用 System.Web.Security.FormsAuthentication.SignOut();   
      如果不想跳回原處,可以先授權再redirect到其他頁(yè)面  System.Web.Security.FormsAuthentication.SetAuthCookie();
<返回>

11.Asp網(wǎng)頁(yè)的EnableViewState屬性對網(wǎng)頁(yè)性能的影響

    ViewState主要是在提交以后回顯用的,它只有在頁(yè)面中的數據是提交到本頁(yè)時(shí)才有用,在這個(gè)時(shí)候,比如Textbox,你用EnableViewState="false",后臺同樣可以得到數據,但由于你提交到本頁(yè),所以提交以后此Textbox中為空;而如果用EnableViewState="true",則提交以后返回時(shí)頁(yè)面中Textbox中為你提交以前的數據。
    另外,除了頁(yè)面Page中的EnableViewState,每個(gè)可以提交的控件,Textbox、Dropdownlist都有EnableViewState屬性。實(shí)際上,回發(fā)的數據并不依賴(lài)于ViewState?;匕l(fā)的控件都實(shí)現了IPostBackDataHandler接口,該接口的LoadPostData方法中,會(huì )對返回的值和ViewState中的值進(jìn)行判斷,如果改變了的話(huà),調用RaisePostDataChangedEvent方法觸發(fā)相應的事件(對于TextBox來(lái)說(shuō)就是TextChanged事件)。
    如果你把EnableViewState="False",LoadPostData方法中返回的值始終會(huì )和文本框的默認值比較大小,也就是說(shuō),如果你在頁(yè)面TextBox中改變值以后,每次你點(diǎn)按鈕提交窗口都會(huì )觸發(fā)TextBox的TextChanged事件LoadPostData中如果返回的值和ViewState中的值不同的話(huà),將把TextBox的值設置成返回的值這就是你看到的結果 。
    在很多情況下,把EnableViewState設為false,可以提高應用程序的性能。特別在等待后臺把數據填充到DataGrid的情況下。如果這個(gè)時(shí)候設為true,那么cpu的時(shí)間都浪費 在序列化數據到 ViewState 中。
     每個(gè)控件(在標記上):sp:datagrid EnableViewState="false" ?/> 
     每個(gè)頁(yè)面(在指令中): <%@ Page EnableViewState="False" ?%> 
     每個(gè)應用程序(在 web.config 中): <Pages EnableViewState="false" ?/> 
    更多請查看微軟中國

<返回>

12.Web打印文檔

<!--語(yǔ)言無(wú)關(guān) 保存成 .HTML-->
<html>
<head>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<title>網(wǎng)絡(luò )打印模板頁(yè)</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--media=print 這個(gè)屬性可以在打印時(shí)有效-->
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>

<style>
.tdp
{
border-bottom: 1 solid #000000;
border-left: 1 solid #000000;
border-right: 0 solid #ffffff;
border-top: 0 solid #ffffff;
}
.tabp
{
border-color: #000000 #000000 #000000 #000000;
border-style: solid;
border-top-width: 2px;
border-right-width: 2px;
border-bottom-width: 1px;
border-left-width: 1px;
}
.NOPRINT {
font-family: "宋體";
font-size: 9pt;
}
</style>

</head>

<body >
<center class="Noprint" >
<p>
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0>
</OBJECT>
<input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
<input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
<input type=button value=頁(yè)面設置 onclick=document.all.WebBrowser.ExecWB(8,1)>
</p>
<p> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
<br/>
</p>
<hr align="center" width="90%" size="1" noshade>
</center>

<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0" class="tabp">
<tr>
<td colspan="3" class="tdp">第1頁(yè)</td>
</tr>
<tr>
<td width="29%" class="tdp"> </td>
<td width="28%" class="tdp"> </td>
<td width="43%" class="tdp"> </td>
</tr>
<tr>
<td colspan="3" class="tdp"> </td>
</tr>
<tr>
<td colspan="3" class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" class="tdp"><p>這樣的報表</p>
<p>對一般的要求就夠了。</p></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
<hr align="center" width="90%" size="1" noshade class="NOPRINT" >
<!--分頁(yè)-->
<div class="PageNext"></div>
<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0" class="tabp">
<tr>
<td class="tdp">第2頁(yè)</td>
</tr>
<tr>
<td class="tdp">看到分頁(yè)了吧</td>
</tr>
<tr>
<td class="tdp"> </td>
</tr>
<tr>
<td class="tdp"> </td>
</tr>
<tr>
<td class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" class="tdp"><p>這樣的報表</p>
<p>對一般的要求就夠了。</p></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>


在基于框架的網(wǎng)頁(yè)打印時(shí),用如下函數可以打印某個(gè)框架內的網(wǎng)頁(yè)
<input type=button onclick="printweb(this)">
<script>
function printweb()
{
this.focus();
window.print();
}
</script>

<返回>

13.將Web表格輸出為word或者Excel格式的文件保存在客戶(hù)端

   Response.Clear(); 
   Response.Buffer= true; 
   if (Session["Language"]!=null && Session["Language"].ToString()!="EN")
   {
      Response.Charset="GB2312";
   }
   Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls"); 
   if (Session["Language"]!=null && Session["Language"].ToString()!="EN")
   {
      Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
   }//設置輸出流為簡(jiǎn)體中文
   Response.ContentType = "application/ms-excel";//設置輸出文件類(lèi)型為excel文件。
   //application/ms-word || application/ms-txt || application/ms-html || 或其他瀏覽器可直接支持文檔 

   this.EnableViewState = false; 
   System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
   System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); 
   System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
   DataGrid1.RenderControl(oHtmlTextWriter); //DataGrid1為DataGrid控件,也可以是動(dòng)態(tài)生成的HtmlTable  <---唯一需要修改的地方
   Response.Write(oStringWriter.ToString());
   Response.End();

<返回>

JSP
1.引入其他包和設置Html參數
  
  字體<%@ page lanage="java"%>
  <%@ page import="java.io.*","java.util.Date"%>
  <%@ page contentType="text/html; charset=GBK" %>
  <%@ page buffer="24kb"%>

<返回>

2.包含文件,同時(shí)帶設置參數

  <jsp:param name="userName" value="kes2000">

  <%@ include file="filename"%>
  String a=request.getParameter("userName");
  out.print(a);

<返回>

3.使用頁(yè)面跳轉并帶參數

  <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對象(讀取頁(yè)面或者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連接數據庫

一、jsp連接Oracle8/8i/9i數據庫(用thin模式) 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
//orcl為你的數據庫的SID 
String user="scott"; 
String password="tiger"; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
二、jsp連接Sql Server7.0/2000數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
//pubs為你的數據庫的 
String user="sa"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
三、jsp連接DB2數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
String url="jdbc:db2://localhost:5000/sample"; 
//sample為你的數據庫名 
String user="admin"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 

四、jsp連接Informix數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
String url = 
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; 
user=testuser;password=testpassword"; 
//testDB為你的數據庫名 
Connection conn= DriverManager.getConnection(url); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
五、jsp連接Sybase數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 
String url =" jdbc:sybase:Tds:localhost:5007/tsdata"; 
//tsdata為你的數據庫名 
Properties sysProps = System.getProperties(); 
SysProps.put("user","userid"); 
SysProps.put("password","user_password"); 
Connection conn= DriverManager.getConnection(url, SysProps); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
六、jsp連接MySQL數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
//testDB為你的數據庫名 
Connection conn= DriverManager.getConnection(url); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
七、jsp連接PostgreSQL數據庫 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("org.postgresql.Driver").newInstance(); 
String url ="jdbc:postgresql://localhost/soft" 
//soft為你的數據庫名 
String user="myuser"; 
String password="mypassword"; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from test"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) {%> 
您的第一個(gè)字段內容為:<%=rs.getString(1)%> 
您的第二個(gè)字段內容為:<%=rs.getInt(2)%> 
<%}%> 
<%out.print("數據庫操作成功,恭喜你");%> 
<%rs.close(); 
stmt.close(); 
conn.close(); 
%> 
</body> 
</html> 
<返回>

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;
        }
    }
 }
<返回>


用VB寫(xiě)ASP的組件

1.用VB編寫(xiě)一般組件

(1)在建立工程時(shí)候,ActiveX Dll方式建立工程

(2)添加一個(gè)類(lèi),會(huì )參數如下代碼
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編寫(xiě)ASP組件(包括Response,Request,Session等內建對象)
Visual Basic工程

  創(chuàng )建組件的步驟是:?jiǎn)?dòng)Visual Basic,在對話(huà)框提示時(shí),選擇要創(chuàng )建的工程類(lèi)型,這里選擇ActiveX DLL:


設置工程的屬性

  創(chuàng )建工程的名字為Project1,它包含一個(gè)單獨的類(lèi)模塊叫做class1。這些就足夠了。點(diǎn)擊菜單“Project/Project1 Properties”,在出現的如下所示畫(huà)面中設置工程的屬性:


  在General/Tab頁(yè)面上有一對需要注意的信息。首先,工程名Project Name已經(jīng)改變?yōu)锳SPToday,這將形成調用名字的第一個(gè)部分,這個(gè)調用的名字就是被ASP頁(yè)面使用的CreateObject的名字。這里還選擇了Unattended Execution選項,從而禁止了圖形界面的交互(比如錯誤信息對話(huà)框),這么做,有可能導致IIS錯誤。

 

  在Make頁(yè)面唯一發(fā)生重要變化的是設置Auto Increment選項,這樣做,當程序編譯后,組件的版本號就會(huì )提升。調試程序時(shí),知道組件的版本號是非常有用的,特別是當擁有一個(gè)source safe系統時(shí),不過(guò)這是另外的話(huà)題。

 

  編譯(Compile)頁(yè)面是選擇讓編譯器如何創(chuàng )建組件的地方。在這里選擇Optimize For Small Code,因為我要讓W(xué)eb服務(wù)器得到它能得到的最多內存。這個(gè)頁(yè)面真正重要的選項是DLL基礎地址,這和計算機調入組件相關(guān)的代碼庫的方式有關(guān)。做為一個(gè)32位的系統,會(huì )留下2兆字節的內存裝入代碼。你要設置的基礎地址必須是建立在64K基礎上,用英語(yǔ)方式表達出來(lái)就是需要設置類(lèi)似 &Hxxxx0000 的數值,xxxx表示從1100到7FFF的16進(jìn)制數字。


在Component頁(yè)面,初始的版本兼容性默認是Project compatibility,如果不編譯成第一個(gè)版本,這將會(huì )是不錯的。當編譯時(shí),為了有利于注冊表,就應該改變?yōu)锽inary Compatibility,如上圖所示。請查閱在線(xiàn)幫助得到關(guān)于這個(gè)復雜項目的詳細資料。

設置工程的引用

  完成了工程屬性的選擇,下一步就是設置組件運行的ASP環(huán)境。通過(guò)引用對話(huà)框實(shí)現這一步。選擇菜單“Project / References”,出現一個(gè)對話(huà)框,選擇組件需要的庫,在這里選擇“Microsoft Active Server Pages Object Library”。


  通過(guò)上述引用,在程序中就可以訪(fǎng)問(wèn)ScriptingContext對象,從而能夠使用在A(yíng)SP頁(yè)面中的5個(gè)對象:Request, Response, Session, Application 和 Server。

  如果在列表中找不到“Microsoft Active Server Pages Object Library”,點(diǎn)擊“Browse”按鈕定位尋找。ASP庫引用實(shí)際上就是一個(gè)后綴為.tlb的文件,默認的路徑應該位于:\Program Files\Microsoft Visual Studio\ Common IDE\IDE98\ASP.TLB。 
在組件中命名對象

  在開(kāi)始編程前,工程的唯一類(lèi)模塊class1,實(shí)在應該含有一個(gè)更有意義的名字。在工程瀏覽(Project Explorer)窗口中選擇類(lèi)項目:


 ?。ㄈ绻诰幊汰h(huán)境中看不到這個(gè)窗口,按“Ctrl+R”組合鍵調出它)在上面的窗口中就可以修改類(lèi)的名字屬性,接著(zhù)出現屬性對話(huà)框。


  修改名字為VisitorID。如果看不到這個(gè)對話(huà)框,按F4顯示它。

編制代碼

  到此為止,已經(jīng)為組件設置了足夠的屬性,建立好了在A(yíng)SP頁(yè)面中調用組件實(shí)例的基礎。但是,還需要一個(gè)接口方法。下面的圖表顯示了將要建立的接口(用長(cháng)方形描述對象的方法,用園描述屬性)。


在Visual Basic中,打開(kāi)類(lèi)VisitorID的代碼編輯器(在工程瀏覽器中雙擊它的圖標)。

《1》首先建立類(lèi)的一些變量聲明:
Private mstrError As String
Private ojbSContext As ScriptingContext  ‘定義了一個(gè)ScriptingContext類(lèi)型的對象變量,ASP處理器根據這個(gè)應用傳遞給組件。
Private objResponse As Response
Private objRequest As Request
Private objApplication As Application
Private objServer As Server
Private objSession As Session
Private Const VISITOR_COOKIE = "VID"

Private Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(7) As Byte
End Type


《2》其次定義類(lèi)的函數:

 (1)首先看看OnStart,用于初始化與ASP內置對象的連接(Request,Response,Session)

Public Function OnStartPage(ByVal mysc As ScriptingContext)
Dim strID As String
Dim dtmExpires As Date

‘IMPORTANT NEVER Leave a public method without an error handler.
On Error Resume Next

Set ojbSContext = mysc  ‘ASP處理器檢查Scripting Context,并存儲引用到事先聲明的變量中。
Set objResponse = mysc.Response
Set objRequest = mysc.Request
Set objServer = mysc.Server
Set objApplication = mysc.Application
Set objSession = mysc.Session

‘Exit Function
End Function

  (2)OnEndPage方法是放置清理代碼的地方。

Public Function OnEndPage()
‘Release Scripting context
Set ojbSContext = Nothing
Set objResponse = Nothing
Set objRequest = Nothingt
Set objServer = Nothing
Set objApplication = Nothing
Set objSession = Nothing
End Function
  (3)自定義函數GetGUID 

Public Function GetGUID() As String 
 GetGUID = "00000000"
End Function
《3》最后定義屬性

Private mvarResult As String 
Public Property Let Result(ByVal vData As String)
   mvarResult = vData
End Property
Public Property Get Result() As String
   Result = mvarResult
End Property
   可以通過(guò)對類(lèi)按右鍵,選擇 Add -> Class Module 可視化地添加函數和屬性

編譯組件和分發(fā)組件

  為了使用新組件,必須將之生成DLL文件。選擇菜單“File/make ASPToday.dll ...”,接著(zhù)選擇生成組件的路徑。

  組件創(chuàng )建完成后,就要建立一個(gè)組件分發(fā)軟件包。除了Visual Studio自帶的,有許多第3方工具可以做這件事情,它們都提供了強大的向導來(lái)幫助建立一個(gè)安裝程序,從而在Web服務(wù)器上安裝組件。
    
    也可以手動(dòng)發(fā)布,在命令提示符中輸入 regsvr32 c:\test\fc1.dll
    手動(dòng)卸載,在命令提示符中輸入       regsvr32 c:\test\fc1.dll /u

在A(yíng)SP頁(yè)面中使用組件

  要實(shí)現組件要完成的任務(wù)“設置Cookie和到期時(shí)間”,需要在頁(yè)面主體(Body)送到瀏覽器之前,在HTTP頭部完成GUID的計算。執行下面的代碼將足夠為瀏覽器設置一個(gè)永久的GUID。

< %@ LANGUAGE="VBSCRIPT" % > 
< % 
Dim oCookieSetter 
Set oCookieSetter = Server.CreateObject ("ASPToday.VisitorID") 
% > 
...

  創(chuàng )建這個(gè)獨立組件的簡(jiǎn)單對象,足夠可以完成要求的任務(wù)。這樣做,就保證了Server.CreateObject方法不僅創(chuàng )建了一個(gè)組件的實(shí)例,而且將檢查組件的一對方法:OnStartPage()和 OnEndPage(),它們將在適當的時(shí)候被執行。這是創(chuàng )建ASP組件、訪(fǎng)問(wèn)ASP內在對象的關(guān)鍵。

如:組件編譯后,又要修改,發(fā)生”權限被拒絕,’f:\csdn\fcom.dll’”等等的錯誤。


修改組件時(shí)權限問(wèn)題的解決

  可以使用以下幾種方式來(lái)解決
  1. 重新啟動(dòng)iis.
    在控制面板中找到管理工具->internet信息服務(wù)->右鍵點(diǎn)擊左邊樹(shù)圖第二層本地計算機->所有任務(wù)->重新啟動(dòng)IIS即可,這個(gè)操作需要一點(diǎn)時(shí)間。
    此時(shí)你可以看到這個(gè)dllhost.exe的進(jìn)程已經(jīng)關(guān)閉
  2. 針對單個(gè)網(wǎng)站或者虛擬目錄的重啟
     在控制面板中找到管理工具->internet信息服務(wù)->找到你的組件運行的虛擬目錄。->右鍵屬性->第一項虛擬目錄中->應用程序保護->點(diǎn)擊卸載即可。此時(shí)你可以看到這個(gè)dllhost.exe的進(jìn)程已經(jīng)關(guān)閉
  3. 如果你覺(jué)得麻煩,直接在Windows任務(wù)管理器中結束該進(jìn)程(有時(shí)是多個(gè)進(jìn)程)既可。不過(guò)要多結束幾次(平均3次可以得手)。
  4. 最后一種方法
     在控制面板中找到管理工具->組件服務(wù)->在樹(shù)圖中點(diǎn)擊計算機,我的電腦,正在運行的進(jìn)程->IIS Out-Of-Process Pooled Applications(2860)->右鍵關(guān)閉即可

<返回>


3. 在VB組件里面添加對數據庫的訪(fǎng)問(wèn)

(1)在WebCVO項目中,可以通過(guò)  Private mobjDataAccess As New uti_DataCOM.DataAccess 構建對數據庫的訪(fǎng)問(wèn)
例如 
Private mobjDataAccess As New uti_DataCOM.DataAccess

Dim searchRS As New ADODB.Recordset
Dim str As String

searchRS.CursorLocation = adUseServer
searchRS.CursorType = adOpenKeyset
searchRS.LockType = adLockReadOnly

Set searchRS = mobjDataAccess.SelectSQL(SearchSQL)
searchRS.PageSize = PageSize

If Not searchRS.EOF Then
   str=searchRS("UserName")
End If

searchRS.Close
Set searchRS = Nothing

(2)在其他地方通過(guò)如下方法實(shí)現

設置工程的引用

  選擇菜單“Project / References”,出現一個(gè)對話(huà)框,選擇組件需要的庫,在這里選擇“Microsoft ActiveX Data Objects 2.7 Library”,如果沒(méi)有這個(gè)版本的,選擇其他版本的ADO library。

創(chuàng )建數據庫對象
 
  這里的數據庫對象不要用server來(lái)創(chuàng )建,而改為直接創(chuàng )建?;蛘哂脜捣绞綇腶sp傳入已經(jīng)建立好的連接。

Public Sub MakeSearchValue(conn As ADODB.Connection)
  Dim Rs As New ADODB.Recordset
  Rs.Open "select top 10 * from tbl_webPri_Privileges", conn, 1
  While Not (Rs.EOF)
    objResponse.Write (Rs("privilegeName") & "<br>")
    Rs.MoveNext
  Wend
  Rs.Close
  Set Rs = Nothing
End Sub

<返回>

4.函數返回多個(gè)值和數組型屬性

   Dim a(3) 
     
    Public Property Get MyArray() As Variant 
     a(0) = 1 
     a(1) = 2 
     a(2) = 3 
     MyArray = a() 
    End Property 
   調用時(shí)為: 
   Dim n As New Class1 
     
   Print n.MyArray(1)

<返回>

5.在VB控件中編寫(xiě)對文件的讀寫(xiě)

folderName = 臨時(shí)文件的目錄
todayString = Year(Now()) & "-" & Month(Now()) & "-" & Day(Now())
     ‘如果定義了格式化日期的函數用   todayString = Year(Now()) & "-" & String2Integer(Month(Now())) & "-" & String2Integer(Day(Now()))
subFolodName = folderName & "\" & todayString
fileName = subFolodName & "\" & 你的文件名字 & ".html"

Set objFile = CreateObject("Scripting.FileSystemObject")
If objFile.FolderExists(subFolodName) = False Then
   objFile.CreateFolder (subFolodName)
End If

Set TempFile = objFile.CreateTextFile(fileName, True)
TempFile.Write ("hello World")

TempFile.Close

<返回>
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
flex的常用用法二十條(轉載) - Stay foolish,Stay hungrey。...
Jsp中調用Oracle存儲過(guò)程的小例子
jsp 連接access數據庫實(shí)例
利用asp實(shí)現網(wǎng)站總訪(fǎng)問(wèn)量代碼
用ASP開(kāi)發(fā)一個(gè)在線(xiàn)考試系統
怎么通過(guò)jsp在網(wǎng)頁(yè)上把數據庫的數據以表格形式顯示出來(lái)?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久