愛在深秋

           

          2008年10月20日

          網友稱微軟黑屏系違法 黑屏補丁已被破解

           昨日有媒體爆料10月20日微軟將在中國再次對盜版WindowsXP進行打擊,并首次對盜版Office進行驗證,盜版軟件用戶將被采取黑屏等手段予以打擊。但是僅僅幾個小時之后,就有網友發帖稱“10月20日未到,微軟反盜xp黑屏補丁已被破解”。

            從今日中午開始,網上各大論壇相繼出現標題為“10月20日未到,微軟反盜xp黑屏補丁已被破解”的網帖,網友警告微軟稱“想玩奉陪到底”,并在隨后的帖子中給出了由一名為“f1098”的網友帶來的破解方法:開始-運行-輸入REGEDIT回車,在左邊欄中找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNT

            CurrentVersionWinlogonNotifyWgaLogon項,將整個WgaLogon項刪除即可。

          posted @ 2008-10-20 16:09 愛在深秋 閱讀(111) | 評論 (0)編輯 收藏

          2008年10月15日

          javascript學習筆記(三)

          上篇文章講了 js 中的 傳值和傳址 函數的作用域 .

          這章我們來探討 js 的變量,表達式,和運算符 還有一些 js 語句。

          升級中 ……

          1, 表達式:

          最簡單的表達式:直接量或者變量名。 var a =1;

          直接量表達式的值:本身。

          變量表達式的值:該變量所存放或引用的值。

          2 , 運算符:

          一元運算符: 比如  - 3

          二元運算符: 比如  3+4

          三元運算符: 比如  ?   :   

          新手常遇到的問題:

          遞增運算符:

          比如:

          i = 1 ;

          j = ++ i ; // 前遞增運算,即先對運算數進行遞增,然后再去計算。

          // 輸出    i =2;    j=2 ;

          i = 1 ;

          j =  i ++; // 后遞增運算,即先去計算,然后再對運算數進行遞增。

          // 輸出    i =2;    j=1 ;

          3, 相等運算符:

          =    賦值運算符;

          ==  相等運算符;

          === 等同運算符;

          NaN 永遠不會與任何值相等,包括自己。

          alert(NaN == NaN); //false NaN 意思為 Not  a  Number

          要檢測一個值是否是 NaN, 可以使用全局函數 isNaN();

          另外新手要注意:

          var a =[1,2,3];

          var b =[1,2,3];

          document.write(a==b); // 輸出 false .( 這個其實是 第一章講的內容。 )

                             // 雖然值相同,類型相同,但址不同。

          --------------------------------------------------------

          var a =[1,2,3];

          var b = a ;

          var c = a ;

          document.write(b===c);// 輸出 true;

          --------------------------------------------------------

          var a = "1";

          var b = true ;

          document.write(a==b);  // 輸出 true

          document.write(a===b); // 輸出 false   值相同, 類型不同

          4, 比較運算符:

          要注意的就是字符串是進行琢個比較

          而且會區分大小寫。

          如果你的需求是不區分大小寫:

          可以使用 String.toLowerCase() // 純小寫

          String.toUpperCase() // 純大寫   轉換后 ,然后再去比較 .

          5, in 運算符:

          要注意的是:左邊的值是其右邊對象的屬性。

          比如:

          var a = { x : 1 , y : 2 };

          var b = “x” in a ;   // true

          var c = “toString” in a ; // true . 左邊的值是其右邊對象的屬性。

          6 instanceof 運算符:

          要注意的是:左邊的運算數是一個對象,右邊的運算數是對象類的名字。

          比如:

          var a = new Date()

          a instanceof Date; // true

          a instanceof Object ; // true

          a instanceof Number ; // false

          7, 3 元條件運算符:

          要注意的是:第一個運算數必須是一個布爾值。

          X > 0 ? 3 : 2 ;

          8, typeof 運算符:

          要注意的是:由于 typeof 對所有的對象和數組都是返回 object;

          所以它只能區分對象和原始數據類型時才有用。

          要區別一種對象類型和另一種對象類型,可以使用 instanceof constructor 屬性。

          9, delete 運算符:

          要注意的是:并不是所有的屬性和變量都能刪除。

          比如:

          var 語句聲明的變量不能被刪除。

          另外 ; delete 刪除一個不存在的屬性時,返回 true ;( ^_^ ,這個比較搞笑。)

          var a = 1;

          alert( delete a ); // 返回 false

          alert( delete a.x ); // 返回 true

          還有一個應該注意:

          Delete 所能影響的只是屬性值,并不能影響被這些屬性引用的對象。

          比如:

          var my =new Object();

          my.height = new Date();

          my.width = my.height;

          delete my.height ;

          document.write(my.width);// my.width 仍然是引用 Date 對象

          10,void 運算符:

          void 的一個用途: 專門生成 undefined 值、

          alert( void(0) )

          alert( void(1) ) // 都輸出 undefined

          這里的 undefined 實際是 void() 運算后的

          考慮到向后兼容性,用表達式 void 0 比使用 undefined 屬性更有用 .

          11, 異常處理:

          拋出異常: throw

          捕捉異常: try / catch / finally

          If(x>0)

           throw new Error(“x must not be negative!”);

          try{

          }

          catch(e){

          }

          finally{ // 總是被最后執行  。通常進行 消除操作。

          }

          12,with 語句:

             var form = frame[1].document.forms[0];

             form.name.value = “ “;

             form.address.value =” “;

          這樣可以使用 with 語句代替 ;

          比如:

          with(frame[1].document.forms[0])

             name.value = “ “;

             address.value =” “;

          當然書上強烈不推薦使用 with 呵呵。效率低,問題多多。

          總結:

          主要介紹了 js 中的變量,表達式,和運算符 還有一些 js 語句。

          如果還有不懂,可以 google 搜索資料 . ( 學會使用搜索,你也就很厲害了。 )

          轉眼間,學了 3 章了, 不知道大家感覺如何。

           將就些吧,學習最重要的還是靠自己,不懂或者有疑問的地方馬上 寫例子測試,驗證。或者查資料。  這樣可能印象會更深入些。

           加油 …….

          posted @ 2008-10-15 14:47 愛在深秋 閱讀(125) | 評論 (0)編輯 收藏

          javascript學習筆記(二)

          上篇文章講了 js 中的一些概念(詞法結構) 數據類型(部分)。

          這章我們 繼續 . 然后了解下 js 中操作數據 函數的 作用域。

           

          1, 對象跟基本類型之間的轉換:

          不管何時,只是對象非空,在布爾環境中都為 true.

          ;

          new Boolean(false);

          new Number(0);

          new String(“”);

          new Array();

          上面雖然內部值是 false, 但對象的值是 true;

          Object à valueOf() à toString()

          其中 Date 類,是先執行 toString() 轉換。

          2,js 中操作一個數據值:

          任何語言都有自己的操作數據的方法;

          Js 也不例外, js 3 種重要的方式來操作一個數據值。

          1)       復制它。例如把它賦給一個新的變量。

          2)       把它作為參數傳遞給一個函數或方法。

          3)       可以和其他值比較大小。

          Js 通過傳值和傳址 2 種方式操作這些數據的值。

          從名稱可以看處,傳值 是通過傳遞值來操作數據。在賦值的過程中,對實際的值進行了拷貝,存儲到一個新的變量中。拷貝的值和原來的值是 2 份完全獨立的值。所以如果你改變了拷貝的值,并不會影響原來的值。當比較大小時候,通常進行琢個字節比較。

          傳址 從名字來看,就是通過傳遞地址來操作數據。在賦值的過程中,對實際的值的地址(可以說是引用)進行了拷貝,他們不是完全的獨立,所以如果你通過引用改變了值,那么原始的值也會改變。當比較大小的時候,通常是看他們是否引用同一個地址來比較。

          簡單的傳址例子:

          var a = new Date();

          alert(a.getDate());

          var b = a ;

          b.setDate(21);

          alert(a.getDate()) // 輸出 21

          3, 一般來說:

          基本數據類型通過傳值來操作的。(如果忘記了哪些是基本數據類型,可以往回看。)

          對象數據類型通過傳址來操作的。(比如 數組和函數)

          例子:

          <script>

          // 傳值

          a=1;

          b=a;

          b=2;

          alert(a); // 輸出 1

          // 傳址

          x=[1,2];

          y=x; // 賦給 y 的只是 x 的一個引用,而不是 x 本身。數組已經在語句中被賦值了,執行過這段代碼后,仍舊只有一個數組對象,只不過我們有 2 個對他的引用了。

          y[0]=2;

          alert(x[0] +" | " +x[1]); // 輸出 2  | 2

          </script>

          其中我們必須注意字符串:

          js 中字符串是通過傳址來復制和傳遞的,而他們是通過傳值來比較的。

          對象和數組是用傳值來傳遞的,只不過傳遞的這個值實際是一個引用,而不是對象本身

          總結 :

          類型

          復制

          傳遞

          比較

          數字

          傳值

          傳值

          傳值

          布爾

          傳值

          傳值

          傳值

          字符串

          不可變

          不可變

          傳值

          對象

          傳址

          傳址

          傳址

          不可變:在 JS 中,沒有方法去改變字符串值的內容。

          對字符串來說,傳值還是傳址,意義不大。

          4, 垃圾收集機制:

          Js 中自動釋放內存。

          比如:

          var s =”heelo”;

          var b   = s.toUpperCase();

          s=b; // 運行到這里后, js 會自動檢測不再使用某個對象,因為 s=b 了,所以 js 會自動釋放字符串“ heelo ”所占的存儲空間。即我們不能再獲取原始的 “heelo” 值; .

          5 , javascript 變量:

          Js 是非類型的。它的變量可以放任何類型的值。

          變量的聲明:

          var a ;

          var b ;

          或者

          var a , b ;

          或者

          var a=0 , b=1 ;

          重復聲明 是合法的,

          如果 遺漏聲明 , js 會隱式的聲明該變量。當然隱式聲明的變量是全局變量

          6 , 變量的作用域:

          Js 2 種:全局和局部。

          從名字的定義可以知道,全局變量的作用域是全局性的。

          js 代碼中,處處都有定義。

          局部變量的作用域是局部的。

          在函數體內定義。

          同名的局部變量的優先級比同名的全局變量,下面的例子說明了這點:

          var a ="abc"; // 全局變量

          function check(){

          var a = "efg"; // 同名的局部變量

          document.write(a);

          }

          check(); // 輸出 efg

          看一個比較經典的例子 :

            var scope = "global";

           function f(){

               alert(scope); // 輸出 undefined

                    var scope = "local";

                    alert(scope); // 輸出 local

          }

          f();

          為什么第一個會輸出 undefined 呢?

          因為 js 規定當 局部變量和全局變量的名稱相同的時候,函數體內的同名全局變量會被隱藏

          那么剛才例子 實際 等價于:

          function f(){

          var scope;

           alert(scope);

                    scope = "local";

                    alert(scope);

           }

          f();

          OK ,如果你看懂了這個例子,說明你對局部和全局的一些區別稍微了解了。

          7 , 變量的作用域:

          從里到外:

          詞法作用域

          作用域鏈

          變量查找

          var x = 1;

          function f(){

           var y =2 ;

           function g(){

             var z =3 ;

          }

           

          }

          調用 g() 對象 ; z =3 ;

           

           

           

           

          調用 f() 對象 ; y =2 ;

           

           

           

           


          全局變量  x = 1  

          在此定義了嗎?

                  

                      

          獲得值

            在此定義了嗎?

                  

                      

          獲得值

          在此定義了嗎?

                  

                      

          獲得值

            未定義

          8 , 客戶端全局變量:

            在客戶端 js 中, Window 對象代表瀏覽器窗口,他是一個全局對象。、

          比如 ; 我們常用的 parseInt() , Math() 都是 Window 對象定義的屬性。

          Js 允許多個全局變量的執行環境,每個環境有不同的全局對象。

          比如:客戶端 js 的每個獨立的瀏覽器窗口,或者同一窗口的不同幀。

          其中的代碼都運行在自己的執行環境中,具有自己的全局對象。

          當然可以使用 表達式 parent.frames[0].x  ; 來引用第一個幀中的全局變量 x ; 這樣就把不同幀中的代碼聯系起來了。

          不過這里有安全性問題。

          總結 ;

          主要講了 傳值和傳址 函數的作用域

          posted @ 2008-10-15 14:47 愛在深秋 閱讀(133) | 評論 (0)編輯 收藏

          javascript學習筆記(一)

          以前沒徹徹底底的看過js相關的學習資料,覺得很有必要再看看基礎的東西。一起來學習。

          1 , javascript
          字符集:

          javascript 采用的是 Unicode 字符集編碼。

          為什么要采用這個編碼呢?

          原因很簡單, 16 位的 Unicode 編碼可以表示地球人的任何書面語言。這是語言 國際化的一個重要特征。 ( 大家也許見過用中文寫腳本,比如: function 我的函數 () {} );

          Javascript 中每個字符都是用 2 個字節表示的。(因為是 16 位編碼)

          2 , 大小寫敏感:

          js 是一種區分大小寫的語言。

          注意下:以前我也犯過的錯誤。

          HTML 是不區分大小寫的。經常看見有人這么寫 ,

          <input type=”button” onClick=”a()” /> (這樣寫是對的)

          如果放到 JS 中,就必須使用 onclick (小寫哦!)

          同時 XHTML 中也只能使用小寫。

          這個我們并不需要太關心,象這種問題,其實都可以自己給自己定一個標準,自己寫程序的時候全部小寫。

          另外每行程序后 分號 也是一樣,我們都寫上。

          3 , 注釋:

          單行:

          //   注釋 1

          /*   注釋 2 */ 

          多行:

          /* 注釋 3

          注釋 3

          注釋 3

          */

          4 , 標識符:

          標識符就是一個名字,用來命名變量和函數。

          規則:第一個字母必須是字母,下劃線 (_) ,或美圓符號 ($)

          為什么第一個字母不能為數字?

          如果第一個為數字, js 很容易就把它當作數字處理了,那么命名就沒意義了, js 規定了后,就很容易的區分了標識符和數字了。

          5 , 直接量:

          就是程序中直接顯示出來的數據值。

          比如: 12 , 1.2 , “ hello “ , true , null , [1,2,3,4]

          這些都是直接量。

          6 , 保留字和關鍵字:

          具體是哪些,可以去 google.cn

          其實我們只要不取一些特郁悶的名字,都不會沖突的。

          7 ,js 數據類型:

          3 種基本的類型;數字,字符串和布爾值。

          2 種小數據類型: null undefined . ( 為什么叫小數據類型?因為他們只定義了一個值 )

          1 種復合類型: object. ( 在這個類型中,它的值可以是基本數據類型,也可以是復合類型,比如其他的 object. )

          注意:在對象中有一個特殊的對象 ----function.( 它是一個可以執行代碼的對象 .)

          其他的一些對象 :

          數組:

          Date 是日期的對象。

          RegExp 類: 正則表達式的對象。

          Error 類: js 中發生錯誤的對象。

          8 , 使用數據類型注意的地方:

          1): 數字:

          由于數字有什么 8 進制, 10 進制, 16 進制等。。。

          八進制: var num = 011; // "0" 開頭

          十六進制: var num =0x1f; // "0x" 開頭

          所以對于 js 這個都能識別的語言來說,就必須得注意。

          alert(377);   // 377

          alert(0377);    //255   = 3 * 64 + 7 * 8 + 7 * 1

          進行算術運算有個重要的對象: Math.

          具體可以去網上下載手冊,查詢里面的方法。

          2 個有用的函數: isNaN() isFinite()

          isNaN() : 用于檢查其參數是否是數字值。 // 提示:是非數字哦。 (not a number)

          document.write( isNaN (0) ) // 返回 false

          document.write( isNaN (5-2) ) // 返回 false

          document.write( isNaN ("Hello") ) // 返回 true

          isFinite(number) 函數用于檢查其參數是否是無窮大。

          如果 number 是有限的,則返回 true. 如果 number NaN( 非數字 ) 或者是無窮大,則返回 false;

          2): 字符:

          ‘you’re right’;

          這樣寫的話 js 會誤以為 you 字母后就結束了,引起錯誤。

          所以當遇到這種情況的時候,必須用到轉義。

          我們可以這么寫:

          ‘you"’re right’;

          另外:你可以 google.com 搜索 轉義序列表

          字符串的簡單操作例子:

          var a = "cssrain";

          var b = a.charAt(a.length-1); // 從字符串 a 中截取最后一個字符。  輸出: n

          var c = a.substring(0 , 2); // 從字符串 a 中截取第 1 2 個字符。 輸出: cs

          var d = a.indexOf('s');   // 從字符串 a 中查找 第一個 s 出現的位置。 輸出: 1  

          從例子可以看出,基數都是從 0 開始的。

          var e = a.substring( a.length-1 ); // 可以看出, substring 2 個參數不寫的話,

          // 默認 是到最后。

          var f = a.substring( a.length-1 , a.length);// 等價于

          3): 數字跟字符之間的轉換:

          數字轉字符:

          var number_to_string = number + “ ”; // 方法 1 :添加一個空的字符串。

          var number_to_string =String(number); // 方法 2 :使用 String() 函數。

          var number_to_string =number. toString(); // 方法 3 :使用 toString() 函數。

          注: toString() 方法默認是以 10 進制轉換。

          如果要使用 8 進制轉換可以 這么寫: number. toString(8);

          字符轉數字:

          var string_to_number = string – 0 ; // 方法 1 字符串減去 0

          var string_to_number = Number(string) ; // 方法 2 :使用 Number () 函數。

          var string_to_number = parseInt(string) ; // 方法 3 :使用 parseInt () 函數。

          方法 1 中不能 string+0 ; 這樣會導致字符串拼接,而不是類型轉換。

          方法 2 中的 Number 函數轉換,比較嚴格。

          比如:

          var a = "19cssrain86";

          var b = Number(a); // 輸出 NaN.

          如果我們使用方法 3

          var c = parseInt(a); // 輸出 19

          可以看出 parseInt() 會自動忽略非數字的部分。

          parseInt() 只取整數部分,忽略小數部分。

          parseFloat() 會把小數部分也取到。

          toString() 一樣, parseInt 也有進制,默認是 10 進制。

          如果想使用 8 進制,可以這么寫: parseInt( “077” , 8 ); // 輸出 63 = 7 * 8 + 7

          當字符以 0 開頭的時候,我們必須把 第二個參數 指明,不然 js 可能會以 8 進制去轉換。

          4): 布爾類型:

          布爾在數字環境中: true 轉換為  1  false 轉換為  0 

          在字符環境中: true 轉換為  “true”  false 轉換為  “false” 

          布爾轉換:

          var x_to_Boolean = Boolean(x); // 方法 1 :使用 Boolean () 函數。

          var x_to_Boolean = !x; // 方法 2 :使用 感嘆號。

          5): 函數的定義:

          方法 1 :普通定義

          function square(x){

                return x*x;

          }

          方法 2 :函數直接量定義

          var square = function(x){ return x*x; }   // 推薦使用

          方法 3 :構造參數

          var square = new Function(“x”,”return x*x;”);   // 效率低

          6): 對象:

          如果有一個名為 cssrain 的對象 他有一個高度 height 的屬性。

          那么我們可以這么引用:

          cssrain.height;

          還可以使用關聯數組定義: cssrain[“height”];

          創建對象:

          方法 1

          var point = new Object();

          point.x = 3;

          point.y = 5;

          方法 2 :使用對象直接量

          var point = {x:3 , y:5 }

          當然 json 也可以咯。

          對象在字符的環境下,會調用 toString() 方法。

          數字環境下,會調用 valueOf() 方法。

          布爾環境下,非空對象為 true;

          7): 數組:

          常規數組:以非負整數做為下標。 image[0]

          關聯數組:以字符做為下標。如: image[“width”]

          js 不支持多維數組,但數組里面可以嵌套數組。

          創建數組:

          方法 1

          var a = new Array();

          a[0] = “1”;

          a[1] = 2;

          a[2] = { x:1, y:3};

          方法 2

          var a = new Array(“1” , 2 , {x:1,y:3} );

          注意下:如果只傳了一個參數;比如 var a = new Array(3);

          那么它是表示: 3 個未定義元素 新數組。

          方法 3 :使用數組直接量

          var a =[“1” , 2 , {x:1 , y :3 }]; // 注意外面的 括號    不是花 括號。

          8):null undefined

          null 表示無值;

          undefined : 使用一個并未聲明的變量,或者使用了已經聲明的變量但未賦值或者使用了一個并不存在的屬性。

          undefined==null

          如果要區分:

          可以使用 === 或者 typeof 運算符。

          9 , 新手常遇到的疑惑:

          var s =”you are right”;

          var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length);

          疑惑: s 是對象還是字符串,為什么字符串會有方法呢?

          回答: s 是字符串。之所以有方法 ,是因為 string 類型 有一個相應的對象類( String )。

          同樣數字和布爾都有相應的 Number , Boolean 類。

          Js 會內部進行相應的包裝對象。 String 對象就替換了原始的字符串。

          總結:

          簡單了介紹了 js 中的一些概念(詞法結構) 數據類型(部分)。

          好了,今天就說到這里, 明天我們 繼續。 ^_^

          posted @ 2008-10-15 14:46 愛在深秋 閱讀(133) | 評論 (0)編輯 收藏

          JSP學習筆記(3)

          一、包含語句<%@include file="uri" %>
            可包含的文件可以是任何后綴的文件如,*.inc、*.htm、*.jsp、*.txt等。例如,
          %@include file="hello.inc"%、<%@include file="bottom.jsp"%>。
          注:include指令包含的是文件的內容,所以被包含文件中不能包含有<html><head><body>三個標簽。

          二、另一個包含語句<jsp:include page="uri"/>
          用法主要有三種:

        1. <jsp:include page="url"/>
        2. <jsp:include page="url" flush="true"/>
        3. <jsp:include page="url" flush="true">

                    <jsp:parameter name="name" value="value"/>
              </jsp:include>
          三、比較兩種包含語句的不同  
            1、后者又叫標簽指令形式。和html有些類似,必須要有</jsp:XXX>結束或是/>結束。
            2、后者,可以向被包含頁傳遞參數。當需要向被包含頁傳遞參數時,被包含頁必須是jsp動態頁面。
            3、接收包含語名的方法還是 request.getParameter("參數名");
            4、后者如果包含的頁面是jsp文件,而自動處理,如果包含的是靜態內容,則直接包含進來。

          四、學到這里的時候可能經常有些面試題:請問jsp中兩種包含語句的區別?
            1、理解一:

        4.  <%@include file="uri"%>,靜態包含,不管被包含頁面的內容如何,先包含時行一起執行后發送到客戶端。

        5.  <jsp:include page="uri"/>,動態包含,能自動區分被包含文件是靜態還是動態的。執行時,如果是靜太資源則和上面一樣把內容加進來,如果是動態資源,則先各自處理之后將處理后的結果包含在一起。

        6. posted @ 2008-10-15 09:28 愛在深秋 閱讀(147) | 評論 (0)編輯 收藏

          JSP學習筆記(2)

          一、Page指令
            JSP中的Page指令用來設置一些和頁面相關的內容。語法如下:
           <%@ Page [language='java']
          [ extends='package.class' ]
          [ import='%26#123;package.class | package.*%26#125;, ...' ]
          [ session='true | false' ]
          [ buffer='none | 8kb | sizekb' ]
          [ autoFlush='true | false' ]
          [ isThreadSafe='true | false' ]
          [ info='text' ]
          [ errorPage='relativeURL' ]
          [ contentType='mimeType [ ;charset=characterSet ]' | 'text/html ; charset=ISO-8859-1' ]
          [ isErrorPage='true | false' ]
          %>

          常用的設置:
            1、Session管理 <%@Page Session="true" %>
            2、緩沖設置 <%@Page isAutoFlush="true"%>、<%@Page buffer="8kb" % >
            3、設定頁面編碼類型 <%@Page contenType="text/html;charset=GBK"%> 或者<%@Page  contentType="text/html;charset=GB2312%>

          使用注意:
                   1.Page指令的書寫一定要注意<%@ 和page之間要有一個空格,否則會出現錯誤。
                   2.Page指令中的以上屬性,除了import以外其他的在同一頁面中只能使用一次。如,

          <%@ page contentType="text/html;charset=GBK"%>
          <%@ Page import="java.util.*"%>
          <%@ Page import="java.IO.*;java.sql.*"%>
          <html><body></body></html>

          contentType="text/html;charset=GBK 屬性必須用,如何不用中文顯示會出現問題。

          posted @ 2008-10-15 09:27 愛在深秋 閱讀(117) | 評論 (0)編輯 收藏

          JSP學習筆記(1)

          一、jsp中可用的注釋方法
               1、JSP中可用注釋包括HTML注釋(又叫顯示注釋),java本身的注釋方法(單行、多行、文檔注釋)。
           兩類注釋的區別在于前者是要發送到客戶端的,后者不會發送到客戶端。具體注釋格式如下:
            <!--注釋內容--> 、//、/**/、/** */
           最后一個注釋是用于文檔成工具。

          二、jsp語法介紹

            1、jsp聲明語句
                   <%! 聲明語名 %>
                   2、表達式
                    <%= 表達式%>,用來輸出內容。同out.Println()
                   3、腳本代碼
                   <% int intTest = 0; %>
                   <% out.print("Hello"); %>
                   4、對于<%= 表達式%>和out.print()使建議
                    開發中多用前者,一般不用后者。
            5、對于<%! 聲明變量%> 和<% 聲明變量%>比較
                   前者聲明的變量是全局變量,后者是局部變量。
            例如下面兩個例子:
                   declareDemo1.jsp

          <html><head><title></title></head>
          <body>
          <%int i =0%>
          <%=++%>
          </body></html>

                  另外一個文件declareDemo2.jsp

          <html><body>
          <% int i=0;%>
          <%= ++%>
          </body></html>


             在瀏覽器中我們多刷新幾次,看兩個頁面的輸了結果如何。很明顯,前者聲明的是全局變量,所以頁面不斷刷新結果會不斷增加。而后者就不同了,聲明的是局部變量。每刷新一次變量就會重新申明一次。所以變量始終沒變。

                7、jsp的交互功能也是通過表單(form)與服務器產互的。
                   向服務器提交數據變不必說了,就是通過表單元素向服務器提交數據。而從客戶端獲取數據的方法是使和request對象的getParameter("參數名")。
                下面我們來建兩個頁面一個向服務器發送數據的頁面(putData.jsp),一個是從客戶端獲取數據(getData.jsp)。

          <html><body>
          <form action="getData.jsp" method="post">
          <input type="text" name="uname" >
          </form>
          </body></html>

          另外一個文件getData.jsp

          <html><body>
          <%
              
          string strName = request.getParameter("uname");
          %>
          <%= strName%>
          </body></html>

                 8、補充一下:數據提交方法,即Post和Get

        7.  Get ,提交的內容會在地址欄里顯示出來,所有有長度限制。地址欄上的數據長度為4~5K。所以不能大于這個數據限制。

        8. Post,而提交的內容不會顯示,并且沒有長充限制。

            所以,在開發中大多數情況下都是使用Post 方法。

        9. posted @ 2008-10-15 09:17 愛在深秋 閱讀(204) | 評論 (0)編輯 收藏

          僅列出標題  

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鲁山县| 沭阳县| 布拖县| 松原市| 温泉县| 遵义县| 舒城县| 台中县| 扬州市| 泉州市| 灌阳县| 定日县| 延安市| 丹巴县| 芦山县| 岢岚县| 交口县| 栾城县| 灯塔市| 陈巴尔虎旗| 玛沁县| 文山县| 武夷山市| 敖汉旗| 喜德县| 林口县| 闻喜县| 浦北县| 来安县| 尤溪县| 五家渠市| 岑巩县| 开化县| 赞皇县| 怀宁县| 衡东县| 攀枝花市| 东乡族自治县| 泰和县| 宜都市| 临沭县|