<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如何學(xué)好java

    如何學(xué)好java,其實很簡單,只要用心體會,慢慢積累!
    posts - 106, comments - 7, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    一.什么是事務(wù)  
         事務(wù)是應(yīng)用程序中一系列嚴(yán)密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務(wù)具有原子性,一個事務(wù)中的一系列的操作要么全部成功,要么一個都不做。
        事務(wù)的結(jié)束有兩種,當(dāng)事務(wù)中的所以步驟全部成功執(zhí)行時,事務(wù)提交。如果其中一個步驟失敗,將發(fā)生回滾操作,撤消撤消之前到事務(wù)開始時的所以操作。
            二.事務(wù)的 ACID
        事務(wù)具有四個特征:原子性( Atomicity )、一致性( Consistency )、隔離性( Isolation )和持續(xù)性( Durability )。這四個特性簡稱為 ACID 特性。
    1 、原子性
        事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包含的各操作要么都做,要么都不做
    2 、一致性  
         事 務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。因此當(dāng)數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時,就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng) 運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是 不一致的狀態(tài)。  
    3 、隔離性
        一個事務(wù)的執(zhí)行不能其它事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其它并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。
    4 、持續(xù)性
       也稱永久性,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其它操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。

    數(shù)據(jù)庫系統(tǒng)必須維護(hù)事務(wù)的以下特性 ( 簡稱 ACID) :

       原子性 (Atomicity)

      一致性 (Consistency)

      隔離性 (Isolation)

      持久性 (Durability)

    原子性 (Atomicity)

    事務(wù)中的所有操作要么全部執(zhí)行,要么都不執(zhí)行;

    如果事務(wù)沒有原子性的保證,那么在發(fā)生系統(tǒng)

    故障的情況下,數(shù)據(jù)庫就有可能處于不一致狀

    態(tài)。

     

    原子性 (Atomicity)

    如果故障發(fā)生在 write(A) 和 read(B) 之間,則將有可能造成帳戶 A 的余額已經(jīng)減去 50 元錢,而帳戶 B 的余額卻沒有改變,憑空就少了 50 元錢。值得注意的是,即使沒有故障發(fā)生,系統(tǒng)在某一時刻也會處于不一致狀態(tài)。原子性的要求就是這種不一致狀態(tài)除了在事務(wù)執(zhí)行當(dāng)中出現(xiàn)外,在其他任何時刻都 是不可見的。保證原子性是 DBMS 的責(zé)任:即事務(wù)管理器和恢復(fù)管理器的責(zé)任。

     

    一致性 (Consistency)

    主要強(qiáng)調(diào)的是,如果在執(zhí)行事務(wù)之前數(shù)據(jù)庫是一致的,那么在執(zhí)行事務(wù)之后數(shù)據(jù)庫也還是一

    致的;所謂一致性簡單地說就是數(shù)據(jù)庫中數(shù)據(jù)的完整性,包括它們的正確性。對于圖中的事務(wù) Ti 來說,一致性要求就是事務(wù)的執(zhí)行不改變帳戶 A 和帳戶 B 的和。否則的話事務(wù)就會創(chuàng)造或銷毀錢!單個事務(wù)的一致性是由對該事務(wù)進(jìn)行編鍵的應(yīng)用程序員的責(zé)任,但是在某些情況下利用 DBMS 中完整性約束 ( 如觸發(fā)器 ) 的自動檢查功能有助于一致性的維護(hù)。

     

    隔離性 (Isolation)

    即使多個事務(wù)并發(fā)(同時)執(zhí)行,每個事務(wù)都感覺不到系統(tǒng)中有其他的事務(wù)在執(zhí)行,因而也

    就能保證數(shù)據(jù)庫的一致性;事情的起因 : 即使每個事務(wù)都能保持一致性和原子性,但如果幾個事務(wù)并發(fā)執(zhí)行,且訪問相同的數(shù)據(jù)項,則它們的操作會以人們所不希望的某種方式交叉執(zhí)行,結(jié)果導(dǎo)致不一致的狀態(tài)!訪問相同數(shù)據(jù)項的兩個事務(wù)并發(fā)執(zhí)行

    解決辦法 :

    如果幾個事務(wù)要訪問相同的數(shù)據(jù)項,為了保證數(shù)據(jù)庫的一致性,可以讓這幾個事務(wù):

    ① 串行執(zhí)行:即一個接著一個地執(zhí)行事務(wù);

    ② 并發(fā)執(zhí)行:即同時執(zhí)行多個事務(wù),但用并發(fā)控制機(jī)制來解決不同事務(wù)間的相互影響。隔離性的保證 :

    事務(wù)的隔離性能夠確保事務(wù)并發(fā)執(zhí)行后的系統(tǒng)狀態(tài)與這些事務(wù)按某種次序串行執(zhí)行后的狀態(tài)是等價的。

    保證隔離性也是 DBMS 的責(zé)任:即并發(fā)控制管理器的責(zé)任。

     

    持久性 (Durability)

    事務(wù)成功執(zhí)行后它對數(shù)據(jù)庫的修改是永久的,即使系統(tǒng)出現(xiàn)故障也不受影響。

    持久性的含義是說:一旦事務(wù)成功執(zhí)行之后,它對數(shù)據(jù)庫的更新是永久的。可以用以下兩種

    方式中的任何一種來達(dá)到持久性的目的:

    以犧牲應(yīng)用系統(tǒng)的性能為代價

    以多占用磁盤空間為代價

    以犧牲應(yīng)用系統(tǒng)的性能為代價:要求事務(wù)對數(shù)據(jù)庫系統(tǒng)所做的更新在事務(wù)結(jié)束前已經(jīng)寫入磁盤;以 多占用磁盤空間為代價:要求事務(wù)已經(jīng)執(zhí)行的和已寫到磁盤的、對數(shù)據(jù)庫進(jìn)行更新的信息是充分的(例如,數(shù)據(jù)庫日志的信息就足夠的多),使得 DBMS 在系統(tǒng)出現(xiàn)故障后重新啟動系統(tǒng)時,能夠 ( 根據(jù)日志 ) 重新構(gòu)造更新。保證持久性也是 DBMS 的責(zé)任:即恢復(fù)

    管理器的責(zé)任。

     

    事物的狀態(tài)有如下幾種:

    ⑴ 中止事務(wù):執(zhí)行中發(fā)生故障、不能執(zhí)行完成的

    事務(wù);

    ⑵ 事務(wù)回滾:將中止事務(wù)對數(shù)據(jù)庫的更新撤消

    掉;

    ⑶ 已提交事務(wù):成功執(zhí)行完成的事務(wù)。

     

    系統(tǒng)的恢復(fù)步驟是:

    1 、反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)

    的更新操作。

    2 、對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄 “ 更新前的值 ” 寫

    入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當(dāng)于做刪除操

    作;若記錄中是刪除操作,則做插入操作;若是修改操作,則相

    當(dāng)于用修改前的值代替修改后的值。

    3 、繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做和 2

    一樣的同樣處理。

    4 、如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)的故障恢復(fù)就

    完成了。

    事務(wù)的隔離級別

    隔離級別定義了事務(wù)與事務(wù)之間的隔離程度。

    隔離級別與并發(fā)性是互為矛盾的:隔離程度越高,數(shù)據(jù)庫的并發(fā)性越差;隔離程度越低,數(shù)

    據(jù)庫的并發(fā)性越好。

    ANSI/ISO SQL92 標(biāo)準(zhǔn)定義了一些數(shù)據(jù)庫操作的隔離級別

       未提交讀( read uncommitted )

       提交讀( read committed )

       重復(fù)讀( repeatable read )

       串行讀( serializable )

    隔離級別的效果更新丟失( lost update ):當(dāng)系統(tǒng)允許兩個事務(wù)同時更新同一數(shù)據(jù)是,發(fā)生更新丟失。臟讀( dirty read ):當(dāng)一個事務(wù)讀取另一個事務(wù)尚未提交的修改時,產(chǎn)生臟讀。

    不可重復(fù)讀取( nonrepeatableread ):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的修改或刪除,每次返回不同的結(jié)果集,此時發(fā)生不可重復(fù)讀取。

    幻像( phantom read ):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的插入操作,每次返回不同的結(jié)果集,此時發(fā)生幻像讀。

    posted @ 2011-05-06 21:34 哈希 閱讀(313) | 評論 (0)編輯 收藏

        泛型是1.5中引入的一個新的概念,由于 不用進(jìn)行強(qiáng)制轉(zhuǎn)換類型了,所以具有較高的安全性和易用性。因為泛型其實只是在編譯器中實現(xiàn)的而虛擬機(jī)并不認(rèn)識泛型類項,所以要在虛擬機(jī)中將泛型類型進(jìn)行擦除。也就是說,在編譯階段使用泛型,運(yùn)行階段取消泛型,即擦除。 擦除是將泛型類型以其父類代替,如String 變成了Object等。其實在使用的時候還是進(jìn)行帶強(qiáng)制類型的轉(zhuǎn)化,只不過這是比較安全的轉(zhuǎn)換,因為在編譯階段已經(jīng)確保了數(shù)據(jù)的一致性。
     

    java 泛型的殘酷現(xiàn)實就是:

    在泛型代碼內(nèi)部,無法獲得任何有關(guān)泛型參數(shù)類型的信息。

    在使用泛型時,任何具體的類型都被擦除,唯一知道的是你在使用一個對象。比如:List<String>和List<Integer>在運(yùn)行事實上是相同的類型。他們都被擦除成他們的原生類型,即List。

    snippet 1:

    package com.cognizant.ch15;

    import java.lang.reflect.Array;
    import java.util.Arrays;

    public class ArrayMaker<T> {
        private Class<T> kind;

        public ArrayMaker(Class<T> kind) {
           this.kind = kind;
     }

     @SuppressWarnings("unckecked")
       T[] create(int size) {
           return (T[]) Array.newInstance(kind, size);
     }

      public static void main(String[] args) {
          ArrayMaker<String> stringMaker = new ArrayMaker<String>(String.class);
          String[] stringArray = stringMaker.create(10);
          System.out.println(Arrays.toString(stringArray));
     }
    }
    ouput:[null, null, null, null, null, null, null, null, null, null]

    由于擦除,kind實際上將被存儲為了Class,非String.calss。在創(chuàng)建數(shù)組的時候,Array.newInstance()實際上并沒有擁有kind所含的類型信息,因此就不會產(chǎn)生具體的結(jié)果。

    如果要創(chuàng)建一個容器而不是數(shù)組,情況卻有點不同:

    snippet 2:

    public class ListMaker<T>{

       List<T> create(){

          return new ArrayList<T>();

    }

      public static void main(String[] args){

          ListMaker<String> stringMaker=new ListMaker<String>();

          List<String> stringList=stringMaker.create();

    }

    }

    擦 除使得create()內(nèi)部的new ArrayList<T>中的<T>被擦除了,在運(yùn)行時,這個類的內(nèi)部沒有任何<T>,但是又不能把 ArrayList<T>改為ArrayList,否則雖然編譯器通過,但會給出警告。

    snippet 3:

    package com.cognizant.ch15;

    import java.util.ArrayList;
    import java.util.List;

    public class FilledListMaker<T> {
       List<T> create(T t, int n) {
       List<T> result = new ArrayList<T>();
        for (int i = 0; i < n; i++) {
           result.add(t);
      }
        return result;
     }

     public static void main(String[] args) {
        FilledListMaker<String> stringMaker = new FilledListMaker<String>();
        List<String> list = stringMaker.create("hello", 6);
        System.out.println(list);
     }
    }

    output:[hello, hello, hello, hello, hello, hello]

    編譯器無法知道有關(guān)create中T的任何信息,但是他仍然可以在編譯期確保放置到result中對象具有T類型。因此就有了一個現(xiàn)象:即使擦除在方法或類內(nèi)部移除了實際類型的信息,編譯器還是可以在方法或類的使用的類型的內(nèi)部一致性。

    那么就有一個問題:擦除后的不知道又到知道其具體類型,他是這么做到的呢?

    答案是:擦除在方法體中移除了類型信息,所以在運(yùn)行時的問題就是邊界即對象進(jìn)入和離開方法的地點,這正是編譯器在編譯期執(zhí)行類型檢查并插入轉(zhuǎn)型代碼的地點。

    泛型中的所有動作都發(fā)生在邊界處:對傳遞進(jìn)來的值進(jìn)行額外的編譯期檢查,并插入 對傳遞出去的值的轉(zhuǎn)型。

    由于不用進(jìn)行強(qiáng)制轉(zhuǎn)換類型了,所以具有較高的安全性和易用性。但泛型其實只是在編譯器中實現(xiàn)的而虛擬機(jī)并不認(rèn)識泛型類項,所以要在虛擬機(jī)中將泛型類型進(jìn)行擦除。也就是說,在編譯階段使用泛型,運(yùn)行階段取消泛型,即擦除。
    這導(dǎo)致了一個問題:無法創(chuàng)建泛型數(shù)組。
    Java的泛型在編譯時會擦除類型信息。Java中的數(shù)組是通過反射動態(tài)建立的。沒有了類型信息怎么能構(gòu)造出數(shù)組。

       



    posted @ 2011-05-06 21:16 哈希 閱讀(204) | 評論 (0)編輯 收藏

    public class StringBufferTest
    {
    public  void operater(StringBuffer x,StringBuffer y)
    {
    //string.append(String)字符串添加函數(shù)
    x.append(y);
    y=x;
    System.out.println("operater輸出:"+"a="+x+",b="+y);
    }
    public static void main(String [] args)
    {
    StringBuffer a=new StringBuffer("A");
    StringBuffer b=new StringBuffer("B");
    StringBufferTest test=new StringBufferTest();
    test.operater(a, b);
    System.out.println("main輸出:a="+a + ",b=" +b);
    }
    java的引用類型是地址傳遞,可是在operater中和main中輸出結(jié)果為什么不一樣呢?


    在main中 a => new StringBuffer("A"); b => new StringBuffer("B"); 在test.operater(a, b);這句,傳入的是兩個引用 在operater方法中,b被重新賦值了,即引用地址改變了 ================ 補(bǔ)充一下:java中任何一個對象變量只是指向創(chuàng)建的對象的一個引用 例如 String a = "KKK"; 那么 “KKK”是創(chuàng)建的String對象, a 則是這個對象的引用,或者說a保存對象“KKK”在內(nèi)存中的地址

    “==”與“Equals”區(qū)別

    ==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。 equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同。 ==比較的是2個對象的地址,而equals比較的是2個對象的內(nèi)容。 顯然,當(dāng)equals為true時,==不一定為true;

    posted @ 2011-05-03 16:44 哈希 閱讀(282) | 評論 (0)編輯 收藏

    string和stringbuffer區(qū)別
    這是好友面試的一道題,其實我知道使用的區(qū)別,StringBuffer必須new出來,StringBuffer的append的效率比string的+=的效率高,
    其實發(fā)現(xiàn)還有很大的區(qū)別,看了看以前scjp的考題

    Test


    答案是 javajavaC
    這是Java參數(shù)傳遞(by value)造成的
    而題目中第七行text = text.append ("C"),append方法會改變text中的值
    而這個text與main中的textBuffer是指向同一個對象,所以對應(yīng)的輸出是javac。
    string的值永遠(yuǎn)不會改變!
    String a = "a";//假設(shè)a指向地址0x0001,
    a = "b";//重新負(fù)值后a指向地址0x0002,但0x0001地址中保存的"a"依舊存在,但已經(jīng)不再是a所指向的。
    從表面上看String類型的對象改變了值,但事實是他不能改變值,只能改變指向的地址
    StringBuffer則不同,直接改變指向的地址中保留的值
    還有

    public static void main(String[] args) {
            StringBuffer s1 
    = new StringBuffer("a");
            StringBuffer s2 
    = new StringBuffer("a");
            s1.equals(s2);
    //為什么是false
            System.out.println(s1.equals(s2));
            String s3 
    = new String("a");
            String s4 
    = new String("a");
            s3.equals(s4);
    //為什么是true
            System.out.println(s3.equals(s4));
        }
       


    StringBuffer類中沒有重新定義equals這個方法,因此這個方法就來自O(shè)bject類,
    而Object類中的equals方法是用來比較地址的,所以等于false.

    String類中重新定義了equals這個方法,而且比較的是值,而不是地址。所以會是
    true。

    posted @ 2011-05-03 16:02 哈希 閱讀(207) | 評論 (0)編輯 收藏

    1、
    輸出三角形
    *
    **
    ***
    ****
    ***
    **
    *

    posted @ 2011-05-03 15:19 哈希 閱讀(142) | 評論 (0)編輯 收藏

    1、很難理解輸出形狀嗎?
        其實很簡單,不要被它嚇懵了,首先你要明白輸出,就是按行執(zhí)行的,而且有順序的輸出,好了,要什么形狀先畫出來,總結(jié)規(guī)律,寫代碼依次輸出就OK了,如金字塔
    。。。。。*
    。。。。* * *
    。。。* * * * *
     這樣理解:左邊輸出一個梯形,ok,5,4,3,右邊三角形1,3,5,for(int i=0;i<3;i++)這是行數(shù),每行要轉(zhuǎn)彎<br/>,for(int j=5;j>3;j--)這是“。”的輸出規(guī)律,for(int k=1;k<=2i-1;k++);這樣就出來了!
     
    js輸出金字塔
    2、日歷的輸出:
      
    日歷

    3、數(shù)組的使用
      
    數(shù)組的使用

    4、
    不間斷的字幕

    5、

    posted @ 2011-05-02 12:39 哈希 閱讀(147) | 評論 (0)編輯 收藏

      MyEclipse斷點調(diào)試JavaScript向你介紹了使用MyEclipse斷點來調(diào)試JavaScript,希望對你有所幫助。

    MyEclipse斷點調(diào)試JavaScript我們可以從以下的幾個步驟來說明:

    1.在站點下準(zhǔn)備兩個文件:1.js和index.html,在index.html中引入1.js,點擊index.html中的按鈕,就會調(diào)用1.js中的test()方法:

    xml 代碼

        
    1. ﹤html﹥  
    2. ﹤head﹥  
    3. ﹤meta http-equiv="Content-Type" content="text/html; charset=gb2312" /﹥  
    4. ﹤/head﹥  
    5. ﹤script type='text/javascript' src='./1.js'﹥﹤/script﹥  
    6. ﹤body﹥  
    7. ﹤input type="button" name="t" value="測試" onclick="test()"/﹥  
    8. ﹤/body﹥  
    9. ﹤/html﹥  

    2.啟動tomcat后,用myEclipse的web2.0瀏覽器瀏覽頁面:

    MyEclipse斷點調(diào)試JavaScript1 

    MyEclipse斷點調(diào)試JavaScript淺析圖1

    3.在web2.0瀏覽器中,輸入頁面地址,出現(xiàn)頁面后,點擊工具欄中的“js調(diào)試”按鈕,這時會在“Javascript Scripts Inspector”窗口中列出當(dāng)前頁面設(shè)計的所有js文件。選擇需要斷點調(diào)試的js文件,雙擊進(jìn)入。

    MyEclipse斷點調(diào)試JavaScript2 

    MyEclipse斷點調(diào)試JavaScript淺析圖2

    4.進(jìn)入到1.js文件后,就可以給js代碼加斷點了:

    MyEclipse斷點調(diào)試JavaScript3 

    MyEclipse斷點調(diào)試JavaScript淺析圖3

    5.這時再回到剛才web2.0的瀏覽頁面,點擊 按鈕,調(diào)用1.js中的test()方法,系統(tǒng)就會自動跳轉(zhuǎn)到調(diào)試狀態(tài),并定位到1.js中剛才設(shè)置斷點的位置了。

    (我用的是myEclipse5,不知道5之前的版本可不可以這樣)

    MyEclipse斷點調(diào)試JavaScript就向你介紹到這里,希望對你有所幫助。

    posted @ 2011-05-01 21:28 哈希 閱讀(210) | 評論 (0)編輯 收藏




    第2章 創(chuàng)建網(wǎng)站
    雙擊自動滾屏/單擊停止
    字號:[大  小]
      本章教學(xué)目標(biāo)

      在使用Dreamwear制作網(wǎng)頁之前,必須首先創(chuàng)建網(wǎng)站或打開網(wǎng)站,此時Dreamwear會自動將所有網(wǎng)站資源(HTML文檔、圖片、動畫、聲音、程序等)都保存到網(wǎng)站文件夾中,從而保證網(wǎng)站發(fā)布后網(wǎng)頁上的所有元素可以正常瀏覽。本章教學(xué)目標(biāo):

      • 學(xué)習(xí)設(shè)計、創(chuàng)建網(wǎng)站的基本步驟
      • 使用Dreamwear 建立本地站點操作方法
      • 使用Dreamwear 建立遠(yuǎn)程站點的操作方法
    本章主要內(nèi)容
      2.1 規(guī)劃網(wǎng)站
     

    2.2 創(chuàng)建本地站點

      2.3 創(chuàng)建遠(yuǎn)程站點 
      2.4 設(shè)置本地計算機(jī)為可訪問服務(wù)器
       本章動畫演示  
     
    · 建立本地站點
    · 建立遠(yuǎn)程站點
    2.1 規(guī)劃網(wǎng)站

     在建立網(wǎng)站與制作網(wǎng)頁之前首先要規(guī)劃站點:

    ① 規(guī)劃站點結(jié)構(gòu):合理的站點結(jié)構(gòu)可以加快對站點的設(shè)計,提高工作效率。

    • 用文件夾保存文檔:首先建一個根文件夾,然后在其中建若干子文件夾,分類存放網(wǎng)站全部文檔。
    • 使用合理的文件名:文件夾名稱與文件名稱,用容易理解網(wǎng)頁內(nèi)容的英文名(或拼音),最好不要使用大寫或中文。這是由于很多網(wǎng)站使用Unix操作系統(tǒng),該操作系統(tǒng)對大小寫敏感,且不能識別中文文件名。
    • 合理分配文檔資源:不同的對象放在不同的文件夾中。不要將與網(wǎng)頁制作無關(guān)的文件放置在該文件夾中。

    ② 規(guī)劃站點導(dǎo)航機(jī)制:提供清晰易懂的瀏覽方法,采用統(tǒng)一的網(wǎng)頁組織形式,引導(dǎo)用戶輕松訪問網(wǎng)站。

    • 建立返回主頁鏈接:在每個頁面上設(shè)置,避免迷失方向。
    • 顯示網(wǎng)站專題目錄:每一頁面都應(yīng)提供網(wǎng)站簡明目錄結(jié)構(gòu),引導(dǎo)用戶快速進(jìn)入。
    • 顯示當(dāng)前位置:在顯著位置上標(biāo)出當(dāng)前頁在網(wǎng)站中的位置。
    • 搜索索引反饋:數(shù)據(jù)網(wǎng)站應(yīng)設(shè)搜索功能。
    • 反饋:設(shè)置管理員email信箱、意見反饋表單等功能。

    ③ 構(gòu)建整體的站點風(fēng)格:網(wǎng)站中網(wǎng)頁風(fēng)格應(yīng)該統(tǒng)一,使網(wǎng)站特點鮮明,突出主題。

    • 風(fēng)格統(tǒng)一:在多個網(wǎng)頁上重復(fù)出現(xiàn)標(biāo)識網(wǎng)站特征的某些對象。
    • 使用模板和庫:快速批量創(chuàng)建相同風(fēng)格的網(wǎng)頁。
    2.2 創(chuàng)建本地站點 

      在制作 網(wǎng)頁之前,必須首先創(chuàng)建網(wǎng)站或打開網(wǎng)站,此后Dreamwear會自動將所有網(wǎng)站資源(HTML文檔、圖片、動畫、聲音、程序等)都保存到網(wǎng)站文件夾中, 從而保證網(wǎng)站發(fā)布后網(wǎng)頁上的所有元素可以正常瀏覽。網(wǎng)站分為本地站點(網(wǎng)站存放在本機(jī)硬盤上)與遠(yuǎn)程站點(網(wǎng)站存放在用于發(fā)布網(wǎng)站的服務(wù)器端)。

      使用dreamwear創(chuàng)建創(chuàng)建本地站點方法如下:

    1.打開站點定義”對話框。

     打開Dreamwear 選取站點菜單→選取管理站點項目→點擊新建按鈕→選取站點項目

    2.給站點命名

     選取站點名稱文本方塊,輸入站點名稱

    3.選取或建立站點文件夾

     點擊瀏覽文件夾按鈕→點擊創(chuàng)建新文件夾按鈕→輸入新建的站點文件夾名后,選擇該文件夾→點擊打開按鈕→點擊選擇按鈕

    4.選取或建立默認(rèn)圖像文件夾

     選取默認(rèn)圖像文件夾文本框→點擊瀏覽文件夾按鈕→打開新建的站點文件夾→點擊創(chuàng)建新文件夾按鈕→輸入圖象文件夾名(images)后,選取該文件夾→點擊打開按鈕→點擊選擇按鈕

    5.設(shè)置訪問本機(jī)網(wǎng)站的Http地址

     選取HTTP 地址文本框→輸入訪問本機(jī)網(wǎng)站時的地址→點擊確定按鈕→點擊完成按鈕

     練習(xí)2-1
    1.在本機(jī)硬盤上創(chuàng)建一個本地站點,文件夾名用mysite,Http地址為
    http://localhost/mysite  
    站點名用自己姓名拼音縮寫。
    2.在本地站點創(chuàng)建一個新文件夾(如Image),用于存放圖形文件。
    3.在根文件夾下創(chuàng)建一個新文件。命名為default.htm,輸入一些內(nèi)容。
    4.按F12鍵預(yù)覽網(wǎng)頁

    2.3 創(chuàng)建遠(yuǎn)程站點 

      在創(chuàng)建了本地站點之后,使用[定義站點]命令設(shè)置或改變遠(yuǎn)程服務(wù)器信息。

    1.打開站點定義中遠(yuǎn)程信息設(shè)置對話框。

     選取站點菜單 → 選取管理站點項目 → 選取要編輯的網(wǎng)站 → 點擊編輯按鈕 → 選取遠(yuǎn)程信息項目

    2.設(shè)置訪問類型

     選取訪問框進(jìn)行設(shè)置

    • [無]:如果不計劃將站點上載到一個服務(wù)器時選擇該項。
    • [本地/網(wǎng)絡(luò)]:如果web服務(wù)器被映射為一個網(wǎng)絡(luò)驅(qū)動器,或者是在本地機(jī)上運(yùn)行web服務(wù),選擇該項。
    • [FTP]:若要使用FTP連接到Web服務(wù)器,選擇該項。

    3.設(shè)置遠(yuǎn)端文件夾

     點擊瀏覽文件夾按鈕 →選取本地磁盤 (C:)項目→打開 Inetpub 文件夾→打開 wwwroot 文件夾→點擊創(chuàng)建新文件夾按鈕→輸入文件夾名mysite(該文件夾名即為遠(yuǎn)程網(wǎng)站名)→點擊選擇按鈕

    4.設(shè)置其它參數(shù)

    • 如果需要在添加和刪除文件時[站點]窗口的[遠(yuǎn)端站點]欄可以自動更新,選取[自動刷新遠(yuǎn)程文件列表]選項。如果要提高向遠(yuǎn)程站點拷貝文件的速度,請不要選定該選項。(若要在任何時候手工刷新[站點]窗口,點擊[站點]窗口的[刷新]按鈕。)
    • 如果在協(xié)作環(huán)境中工作,則可以使用存回/取出系統(tǒng)在本地和遠(yuǎn)程站點之間傳輸文件。當(dāng)文件取出后,Dreamweaver 會在“站點”面板上顯示取出該文件的人員的名稱,并且在該文件的圖標(biāo)旁顯示選中標(biāo)記。存回文件后本地版本將變?yōu)橹蛔x,一個鎖形符號出現(xiàn)在“站點”面板上該 文件的旁邊,以防止更改該文件
    • 如果只有一個人在遠(yuǎn)程站點上工作,則可以使用“獲取”和“上傳”命令傳輸文件,而不用存回或取出文件。

    5. 點擊“確定”按鈕后點擊“完成”按鈕

    2.4 設(shè)置本地計算機(jī)為可訪問服務(wù)器

     如果要使本地計算機(jī)作為服務(wù)器接受訪問,需要安裝服務(wù)器程序(例如微軟的PWS或IIS)并啟動網(wǎng)站.
    一.啟動網(wǎng)站方法:

    1) 在已安裝IIS的計算機(jī)上,選擇開始→設(shè)置→控制面板→管理工具→Internet信息服務(wù),打開如下面板

    2) 選擇網(wǎng)站下的默認(rèn)網(wǎng)站,點擊"啟動"按鈕

    二.在本地計算機(jī)發(fā)布網(wǎng)站方法

    方法一:
    1) 在Dreamwear中將遠(yuǎn)程站點設(shè)置為本地機(jī)的C:"Inetpub"wwwroot"站點文件夾(例如mysite)
    2) 點擊上傳文件按鈕,將本地站點文件夾所有文件上傳至遠(yuǎn)程站點

    方法二:
    1) 選擇開始→程序→資源管理器
    ,找到本地站點文件夾
    2) 右鍵點擊站點文件夾,在彈出的菜單中選擇共享
    3)選擇web共享選項卡
    4)選擇共享文件夾
    5)在別名框中輸入要發(fā)布的文件夾名稱的別名(要求:字母或數(shù)字,不能是漢字或全角字符)
    6)點擊"確定"

    三.瀏覽網(wǎng)站方法

     打開瀏覽器,輸入訪問地址:

    • 本機(jī)訪問URL  http://localhost/發(fā)布的站點名   
      例如:http://localhost/mysite
    • 其他機(jī)訪問URL http://IP地址或計算機(jī)名/發(fā)布的站點名例如:
      例如:http://st11/mysite
      http://10.1.5.128/mysite   
    • 查看本機(jī)IP地址方法:
      選擇開始→運(yùn)行→cmd→在dos提示符后輸入ipconfig)
    • 查看本機(jī)計算機(jī)名方法:
      右鍵點擊"我的電腦"→在彈出的菜單中選擇"屬性"→點擊"計算機(jī)名"選項卡查看

    練習(xí)2-2
    1.在C:"Inetpub"wwwroot"文件夾下新建一個用于存放自己網(wǎng)站的文件夾,文件夾名mysite
    2.設(shè)置遠(yuǎn)程信息,選擇服務(wù)器為“本地/網(wǎng)絡(luò)”;遠(yuǎn)程站點文件的目錄地址為C:"Inetpub"wwwroot"mysite
    3.將本地站點上傳至遠(yuǎn)程站點后,刷新遠(yuǎn)程站點。
    4.使用URL地址訪問自己所建的站點:
    本機(jī)訪問URL  http://localhost/mysite
    其他機(jī)訪問URL http://IP地址/mysite

    本章要點
    ·規(guī)劃站點
    1. 用文件夾保存文檔:首先建一個根文件夾,然后在其中建若干子文件夾,分類存放網(wǎng)站全部文檔。
    2. 使用合理的文件名:文件夾名稱與文件名稱,用容易理解網(wǎng)頁內(nèi)容的英文名(或拼音),最好不要使用大寫或中文。
    3. 合理分配文檔資源:不同的對象放在不同的文件夾中。不要將與網(wǎng)頁制作列關(guān)的文件放置在該文件夾中。

    ·建立本地站點操作步驟

    1. 打開站點定義”對話框
    2. 給站點命名
    3. 選取或建立站點文件夾
    4. 選取或建立默認(rèn)圖像文件夾
    5. 設(shè)置訪問本機(jī)網(wǎng)站的Http地址
    ·建立遠(yuǎn)程站點操作步驟  1. 打開遠(yuǎn)程站點定義對話框
    2. 設(shè)置遠(yuǎn)程訪問的類型
    3. 建立遠(yuǎn)程站點文件夾
    4. 設(shè)置參數(shù)
    5. 上傳站點并訪問

    posted @ 2011-04-30 00:24 哈希 閱讀(183) | 評論 (0)編輯 收藏

    Web.xml
    二話不說看代碼:
      
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
        xmlns
    ="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <servlet>
        
    <description>This is the description of my J2EE component</description>
        
    <display-name>This is the display name of my J2EE component</display-name>
        
    <servlet-name>ValidateView</servlet-name>
        
    <servlet-class>org.man.prj.ValidateView</servlet-class>
      
    </servlet>

      
    <servlet-mapping>
        
    <servlet-name>ValidateView</servlet-name>
        
    <url-pattern>/ValidateView</url-pattern>
      
    </servlet-mapping>
      
    <welcome-file-list>
        
    <welcome-file>index.jsp</welcome-file>
      
    </welcome-file-list>
    </web-app>

    package org.man.prj;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class ValidateView extends HttpServlet {

        
    /**
         * The doGet method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to get.
         * 
         * 
    @param request the request send by the client to the server
         * 
    @param response the response send by the server to the client
         * 
    @throws ServletException if an error occurred
         * 
    @throws IOException if an error occurred
         
    */
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {

            doPost(request, response);
        }

        
    /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * 
    @param request the request send by the client to the server
         * 
    @param response the response send by the server to the client
         * 
    @throws ServletException if an error occurred
         * 
    @throws IOException if an error occurred
         
    */
        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {

            response.setContentType(
    "text/html");
            PrintWriter out 
    = response.getWriter();
            out.println(
    "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
            out.println("<HTML>");
            out.println(
    "  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
            out.println(
    "  <BODY>");
            out.print(
    "    This is ");
            out.print(
    this.getClass());
            out.println(
    ", using the POST method");
            out.println(
    "  </BODY>");
            out.println(
    "</HTML>");
            out.flush();
            out.close();
        }

    }
    輸入tomcat驗證一下:
    http://localhost:8888/Validate/ValidateView


    posted @ 2011-04-29 15:11 哈希 閱讀(266) | 評論 (0)編輯 收藏

    這三者存放的都是對象的引用
    Set是無序集合,里邊的對象沒有先后順序,而且不能重復(fù)(重復(fù)是指:同一個類的對象,并且hashCode和equals方法的返回值相同)
    List是有序集合,里邊的對象有先后順序,并且可以重復(fù)(重復(fù)是指,當(dāng)取得指定的對象時,同一個類的對象并且equals方法的返回值相同即為重復(fù))
    Map中存放的鍵值對象的引用,但是鍵不能重復(fù)(鍵集即無序集合Set【具有Set重復(fù)的特性】)

    Set List 繼承了Collection接口,可以使用Collection實現(xiàn)多態(tài),而Map沒有。



    posted @ 2011-04-29 14:40 哈希 閱讀(131) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
    主站蜘蛛池模板: 国产精品hd免费观看| 成人免费无码大片a毛片软件 | 亚洲国产精品yw在线观看| 国产午夜无码精品免费看动漫| 国产女高清在线看免费观看| 亚洲av无码专区在线电影天堂| 国产乱码免费卡1卡二卡3卡| 亚洲国产精品婷婷久久| 亚洲免费在线播放| 亚洲资源在线观看| 曰批全过程免费视频播放网站| 亚洲中文字幕无码av在线| 免费无码A片一区二三区| 国产精品亚洲午夜一区二区三区| 中文字幕无码免费久久99| 亚洲精品一卡2卡3卡四卡乱码| 国产无遮挡吃胸膜奶免费看视频 | 99热这里只有精品免费播放| 久久亚洲AV成人无码电影| 99久久久精品免费观看国产| 国产精品亚洲四区在线观看 | 狠狠久久永久免费观看| 日韩毛片一区视频免费| 亚洲国产成人一区二区三区| 亚洲电影免费观看| 亚洲youwu永久无码精品| 久久伊人亚洲AV无码网站| 一个人免费视频在线观看www| 亚洲精品动漫在线| 国产免费无遮挡精品视频| 成人免费av一区二区三区| 亚洲精品福利网泷泽萝拉| 成人au免费视频影院| 国产精品永久免费视频| 久久亚洲精品人成综合网| 在线观看免费a∨网站| 中文成人久久久久影院免费观看| 内射干少妇亚洲69XXX| 好爽好紧好大的免费视频国产| a在线观看免费网址大全| 亚洲香蕉在线观看|