第二階段WEB開發(fā)基礎(chǔ)學習總結(jié)
WEB開發(fā)基礎(chǔ)學習總結(jié)
第二階段任務(wù):學習掌握HTML、CSS、JavaScript等與web開發(fā)相關(guān)的基礎(chǔ)知識。在第二階段的學習中,主要都是針對web開發(fā)基礎(chǔ)的知識,其中html用于來表現(xiàn)網(wǎng)頁的結(jié)構(gòu)與內(nèi)容,css用來控制頁面的外觀和表現(xiàn),javascript用來控制頁面的行為。其中分別針對每一部分分別總結(jié)如下:
HTML的學習總結(jié):
(1)、HTML、XHTML的不同:
①XHTML中屬性名稱必須小寫;
②XHTML屬性值必須加引號③XHTML屬性不能簡寫;
④XHTML在屬性中增加了ID屬性,它可以取代name的功能;⑤XHTMLDTD定義了強制使用的HTML元素。
總的來說,XHTML比HTML更加嚴格與規(guī)范。它只著重強調(diào)用來表現(xiàn)網(wǎng)站的結(jié)構(gòu)而非樣式,樣式的內(nèi)容交由CSS來控制。
(2)、HTML中注釋的形式是:,注釋部分的內(nèi)容,將不會顯示在網(wǎng)頁中。(3)、HTML中的標簽有兩種形式:
①帶結(jié)束標記的標簽,如:,etc。②不帶結(jié)束標記的標簽,如:,etc。
在標簽內(nèi)部,可以是允許的屬性=“值”對出現(xiàn)。最重要的幾個標簽如下:
標簽在文檔的最外層,其它所有標簽都在它的內(nèi)部,它表示該文檔是由html語言寫的。
它是頭部標簽,它其中的內(nèi)容是不會被網(wǎng)頁顯示在正文中的,常常在其中插入標題,或者說明文件的一些公共屬性,例如內(nèi)部樣式表的定義,外部樣式表的導(dǎo)入,javascript的編寫,外部javascript腳本的導(dǎo)入。
標簽是文本的正文,它其中的內(nèi)容將顯示在網(wǎng)頁之中。(4)、HTML元素具有四種形式:
①空元素,如它只是起到換行的作用,沒有屬性,也不能跟任何屬性;
②帶有屬性的空元素,如,與空元素相對應(yīng),這類元素自然就是具有屬性,但是無法體現(xiàn)任何元素;
③帶有內(nèi)容的元素,如XXXX,它表示該標簽沒有屬性,但是在開始標簽與結(jié)束標簽之間可以插入元素;
④帶有內(nèi)容和屬性的元素,如鏈接,它表示標簽內(nèi)部可以有多個屬性,在開始標簽與結(jié)束標簽之間可以插入元素。(5)、有一些特殊的字符,在HTML中不能直接用鍵盤上的鍵來表示,像不間斷空格,回車,還有html中的保留字等都需要引用的方式才能輸入。如不換行空格: 。(6)、常常使用到的標簽:①用來表示段落的標簽,
②列表的建立,還有等等,其中內(nèi)部標簽不是而是、③還有就是表格的標簽,一般形式是:
表格的標題表格的一行用于定義表頭用于定義單元格
④表示創(chuàng)建表單,其中有兩個重要的屬性:method屬性指定向服務(wù)器發(fā)送數(shù)據(jù)時使用的HTTP方法,可以是get或者post(get方法提交表單時,提交的數(shù)據(jù)被附加到URL中,作為URL的一部分發(fā)送到服務(wù)器,缺乏安全。Post方法是將菜單中的信息作為一個數(shù)據(jù)塊單獨發(fā)送到服務(wù)器,更加安全)。另一個屬性anction用來表示對表單進行處理的腳本的地址,即表示表單提交到服務(wù)器后,由誰來處理這些數(shù)據(jù)。在標簽中,會用到標簽,input標簽常用到的屬性有:type,value。Type用來制定要創(chuàng)建的控件類型,value指定控件的初始值。⑤,超鏈接的符號,可以用它的href屬性來制定連接到那個位置上去。
⑥表示嵌入一張圖片到網(wǎng)頁中。它其中的屬性width,height等可以設(shè)置圖片顯示時候的寬高。
CSS的學習總結(jié):
(1)、CSS它的目標就是將結(jié)構(gòu)與表現(xiàn)相分離,也就是讓html的標簽只專注于定于網(wǎng)頁內(nèi)容的結(jié)構(gòu),CSS來決定這些網(wǎng)頁的內(nèi)容如何顯示。使用CSS的一大好處就是,簡化了網(wǎng)頁的格式代碼,加快網(wǎng)頁的下載顯示速度。同時在進行后期維護的時候,由于結(jié)構(gòu)與表現(xiàn)的分離,更加易于維護。
(2)、CSS中注釋的方法是:/*注釋內(nèi)容*/(3)、CSS的選擇器分類:①元素選擇器:就是某個HTML元素作為選擇器,如:a,h1,p,etc;
②類選擇器,這也是非常常用的一個選擇器,它的名字可以任意取,只是在.css文件中定義它的樣式時,需要在這個名字前面加一個小黑點,使用它的時候,只需要在html標簽中使用class來選擇這個樣式即可;
③ID選擇器,它有些類似于類選擇器,但又有自身的一些特點,首先,ID選擇器前面有一個#號,其次ID選擇器的使用時,它需要通過ID屬性值來指定,而不是通過class來指定,最后,在一個HTML文檔中,ID選擇器會使用一次,并且進使用一次;④屬性選擇器,屬性選擇器可以根據(jù)元素的屬性及屬性值來選擇元素,例如,如果在網(wǎng)頁文檔中有部分元素包含title這個屬性,而我們希望將這些元素都變成紅色,以突出顯示,這時就可以使用屬性選擇器簡單實現(xiàn),如:*[title]{color:red};
⑤后代選擇器,它的別名是包含選擇器,其實際效果可以通過這個小例子來進行解釋:我只想對標簽中的em元素引用樣式,我可以這樣定義:pem{color:red};后代選擇器定義時需要注意,樣式規(guī)則左邊的選擇器一段包括兩個或者多個用空格分隔的選擇器(這個選擇器可以是其他的任意選擇器,而不僅僅是元素選擇器)。⑥子元素選擇器,它是相對于后代選擇器來講的,是在其基礎(chǔ)上縮小了范圍,它只對它后面挨著的元素有效。樣式定義格式:p>em{color:red}⑦相鄰兄弟選擇器,如果需要選擇緊接在另一個元素后的元素,而且二者有相同的父元素,即可使用它。樣式定義格式:h1+p{color:red}
⑧偽類選擇器,是指對同一HTML元素的各種狀態(tài)和其所包括的部分內(nèi)容的一種定義方式。如:a:link{color:red}(4)、CSS的樣式分為三種:
①行內(nèi)樣式,即HTML標簽直接使用style屬性,它一般用于某個獨立的元素。如:
。如果使用了行內(nèi)樣式,一般需要在標簽內(nèi)添加:
②內(nèi)嵌樣式,它是將標簽放在標簽中,如:
P{padding:10px;font-size:16px}
③外部樣式,這是最建議使用的,因為它將CSS單獨保存在一個文件中,通過
將樣式引入進來。它的優(yōu)點是可以同時作用于多個頁面,而無需重復(fù)編寫樣式,減少了工作量,并且修改時,只需要修改一個.css文件,就可以將整個使用它的頁面樣式都修改掉。
三種樣式的使用順序在html標簽中,如果有多種樣式,而規(guī)定的樣式?jīng)]有沖突,則疊加,如果有沖突,則最先考慮行內(nèi)樣式,沒有的話,再考慮內(nèi)嵌樣式,還沒有,就采用外部樣式,如果它也沒有,就使用html的默認樣式顯示。(5)、框模型:
padding,border,margin都是可選的,默認值均為0,其中width與height指的是內(nèi)容區(qū)域的寬度和高度,padding,margin,border尺寸的變化,不會影響內(nèi)容區(qū)域的尺寸,但是會增加元素框的總尺寸。額外需要注意的是:margin的合并,它是指,當兩個垂直外邊距相遇時,他們將形成一個外邊距,合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。(6)、CSS定位,它有三種方式,分別是:
①相對定位,相對于其默認初始位置,通過設(shè)置垂直或水平位置,讓這個元素相對于它的起點進行移動。要進行相對定位,需要在樣式中使用:position:relative
②絕對定位,絕對定位讓元素脫離了文檔流,故它不占據(jù)空間,定位后生成一個塊級元素,而不管原來它在正常流中生成何種類型框。
③浮動,在標準瀏覽器中,浮動元素脫離了文檔流,不占據(jù)外圍容器空間。浮動可以向左或者向右,知道它的外邊緣碰到包含框或另外一個浮動框的邊框為止。
JavaScript的學習總結(jié):
(1)、關(guān)于javascript的一些語法:javascript是一種弱類型語言,它屬于面向?qū)ο缶幊陶Z言。它也有構(gòu)成編程語言的一些基本元素,如:數(shù)據(jù)類型,變量(雖然全部都用var關(guān)鍵字來聲明變量,甚至可以不用該關(guān)鍵字),表達式和運算符,數(shù)組,控制結(jié)構(gòu)(if(){}else{})和循環(huán)結(jié)構(gòu)(for()),函數(shù),正則表達式等等概念。其中大部分與其他語言的差不多,只有個別的需要作出說明。
①對象,javascript也屬于面向?qū)ο缶幊陶Z言,因此它其中的所有事物都是對象,這點與其他面向?qū)ο缶幊陶Z言相同,一切皆對象(字符串,數(shù)值,數(shù)組,函數(shù)等等)。當然,雖然javascript有許多內(nèi)置對象,它也是允許自定義對象的。對象之中也包含屬性與方法,對象訪問屬性跟方法的方式也與java中的訪問方式一樣,通過.來進行訪問。Javascript中的主要對象有:window,document,文本對象,按鈕對象,location對象,history對象,字符串對象,日期對象,數(shù)組對象等
②變量,javascript是弱類型語言,用它聲明的變量,可以保存任意類型的數(shù)據(jù),或者只用變量名對其直接賦值。
③數(shù)組,它的數(shù)組是一個對象,需要使用的時候,可用這種方式:arr=newArray();(實質(zhì)上還有其他兩種方式)這點有些類似java中創(chuàng)建對象,調(diào)用構(gòu)造函數(shù)。數(shù)組類主要有toString(),subString()等等方法。
④函數(shù),javascript中的函數(shù)是很具有獨特氣質(zhì)的,它沒有返回值,可以在參數(shù)列表中只給出變量名而不要數(shù)據(jù)類型(因為它是弱類型),甚至它可以不要函數(shù)名字,并且定義一個函數(shù),需要使用關(guān)鍵字function來說明這是一個函數(shù)的定義。而且在一個函數(shù)內(nèi)部可以再定義一個匿名函數(shù),這些特點在其他語言中是很不可思議的事情。雖然javascript是面向?qū)ο缶幊陶Z言,但是它并不具備類似于C++,JAVA這類語言的某些功能,如:函數(shù)的重載。
(2)、在HTML中使用javascript是非常簡單的一件事情,它有兩種形式:①內(nèi)部引入:就是將js代碼直接寫在HTML代碼中,如:
alert(“=============”);②外部引入:就是將js代碼單獨放在一個文件中,其后綴名是.js,在要使用它的html文件中使用如下代碼引入:
這段代碼一般放在之間。(3)、javascript中的事件,事件簡單說就是用戶在使用頁面時執(zhí)行的操作,比如點擊鼠標,按鍵盤等等。一般處理事件都是通過一個函數(shù),如常在js腳本中使用的這種方式:window.onLoad=myFunction;其中onLoad是頁面加載完成時要觸發(fā)的一個事件,該事件的處理函數(shù)式myFunction。Javascript中有非常多的時間,比如:onclick(鼠標點擊),onsubmit(按鈕提交),onchange(下拉菜單),onblur(失去焦點)等等。(4)、javascript和cookie,cookie是一小段信息,當用戶第一次訪問服務(wù)器時,服務(wù)器將它發(fā)給用戶,這樣,以后當用戶訪問這個站點時,服務(wù)器就可以通過cookie來識別用戶了。Cookie它的格式是有特定格式的,格式如下:
cookieName=cookieValue;expires=expirationDate;path=URLpath;domain=siteDomain其中只有第一部分cookieName是必須賦值的。(5)、DOM(文檔對象模型),它要求將HTML文檔看做是由節(jié)點組成的樹結(jié)構(gòu)。通過DOM給出的一些屬性及方法,我們可以添加、刪除和操作特定的節(jié)點,以及在頁面上插入和替換節(jié)點。
①訪問節(jié)點:getElementByTagName()獲取標簽名;getElementsByName()獲取name特性等于指定值的元素;getElementById()返回id特性等于指定的元素。②創(chuàng)建和操作節(jié)點:createElement()創(chuàng)建標簽元素;createTextNode()創(chuàng)建文本節(jié)點;appendChild()把文本節(jié)點追加到標簽元素中;removeChild()刪除節(jié)點;replaceChild()替換節(jié)點;insertBefore()插入節(jié)點。
(6)、關(guān)于ajax,它并非一個新的技術(shù),而是將很多原本存在的技術(shù)進行了一個組合,其中的核心是XMLHttpRequest,Ajax技術(shù)讓自己的站點具有更好的響應(yīng)性、更吸引人,這會使站點的用戶在瀏覽過程中更愉快。它主要由下面這些技術(shù)組成:①使用HTML和CSS控制頁面結(jié)構(gòu)和表示方式;②使用DOM顯示和操縱頁面;
③使用瀏覽器的XMLHttpRequest對象在客戶機和服務(wù)器之間傳輸數(shù)據(jù);④使用XML(JSON)作為在客戶機和服務(wù)器之間傳輸?shù)臄?shù)據(jù)的格式;⑤使用JavaScript動態(tài)地顯示所有內(nèi)容并且提供交互功能。使用ajax技術(shù),我們一般需要通過以下幾個步驟:①首先通過XMLHttpRequest獲得一個對象xhr;
②設(shè)置xhr的onreadystatechange事件處理程序。每當xhr.readyState屬性值發(fā)生變化時,就會觸發(fā)這個處理程序。③調(diào)用open()并且傳遞3個參數(shù):一個HTTP請求方法(例如"GET"、"POST"或"HEAD")、服務(wù)器上一個文件的URL和一個布爾值,這個布爾值告訴服務(wù)器請求是否異步(也就是說,我們是否會等待請求完成)。
④最后,我們用send()發(fā)送剛才創(chuàng)建的請求。如果要請求POST,就傳遞這里給出的參數(shù);若是GET,直接將參數(shù)設(shè)置為null。(7)、javascript一些其他知識點:
①alert(“xxxxxxxxxx”)跳出提示框,只有提示信息;confir6(“xxxxxxx”),有兩個按鈕,用來確認用戶的選擇;prompt(“xxxxxxxxx”,””),提示用戶輸入一個字符串,然后對這個字符串進行操作。
②document.write(),用來向頁面輸出內(nèi)容;window.location完成頁面的轉(zhuǎn)換;
③比較字符串的時候,在javascript中只需要通過==即可,不需要像java一樣使用equals()。
④javascript中也有this,JavaScript關(guān)鍵字this使腳本能夠根據(jù)使用這個關(guān)鍵字的上下文將值傳遞給函數(shù)。
⑤javascript中的匿名函數(shù),樣式是:thisImage.onmouseout=function(){this.src=this.outImage.src;}
第一行開始定義一個匿名函數(shù)(也就是沒有函數(shù)名的函數(shù))。本來也可以給它指定一個名稱(比如rollOut()),但是因為它只有一行代碼,所以不需要命名。⑥在編寫腳本時,常常要檢查瀏覽器是否能夠理解我所使用的對象,常用于兼容中,我們常用對象探測技術(shù),如:if(document.getElementById){}else{}如果對象存在,if語句就為true,腳本繼續(xù)執(zhí)行。但是,如果瀏覽器不理解這個對象,測試就返回false,并執(zhí)行條件語句的else部分。在之前還有使用瀏覽器探測技術(shù)。
本周幾天時間對HTML、CSS、JavaScript進行了學習,HTML相對來說是比較簡單的,要掌握其中的標簽難度也不是很大,主要是要明白它只控制文檔的結(jié)構(gòu),表現(xiàn)相關(guān)的交給CSS,行為相關(guān)的交給JavaScript;CSS中有眾多的屬性還不是很熟悉,因為自己真正完整布局的網(wǎng)站并沒有,但是對CSS大體結(jié)構(gòu)了解,因為它的形式相對來說很單一,在實踐中多多運用,私下自己做幾個簡單的單頁,個人覺得問題不大;對于JavaScript之前并沒有接觸過,經(jīng)過這段時間學習,明白了其中的一些入門的含義,對其中具有的眾多對象,對象的很多方法與屬性還不是很熟悉,目前能夠進行一些簡單腳本的編寫與閱讀,后面也需要再編寫一些復(fù)雜的腳本來提高自己這方面的能力。對于這三方面知識點尚有疏漏的地方,望劉老師給予指導(dǎo)。
何磊
201*年11月6日
擴展閱讀:java學習總結(jié)(基礎(chǔ)加web)
Java考試題
Java基礎(chǔ)部分
1、請簡要描述oop的主要特征,并談?wù)剬@些特征的理解。
Oop主要特征:抽象,封裝,繼承,多態(tài);抽象:忽略與當前主題無關(guān)的部分,抓住重點
封裝:使用方法將類的屬性隱藏起來,控制用戶對類的修改和數(shù)據(jù)訪問的程度,
繼承:子類繼承父類的方法和屬性,使程序結(jié)構(gòu)清晰,提高挨罵復(fù)用,一種isa的關(guān)系。多態(tài):不同對象對統(tǒng)一消息進行回應(yīng)。一種多種同名方法共存
2、char型變量中能不能存貯一個中文漢字?為什么?
能,java中編碼方式是unicode,char占2個字節(jié),一個漢字剛好兩個字節(jié)所以可以
3、shorts1=1;s1=s1+1;有什么錯?shorts1=1;s1+=1;有什么錯?
錯,需要強制轉(zhuǎn)型為short,+=是java定義的運算符故編譯是jvm會自動處理
4、請說明break,continue,return的作用。
Break,可用于switch分支一條case語句結(jié)束以后,可用于跳出循環(huán)Contiue:用于跳出里層循環(huán)
Return:也可用于終止循環(huán),有返回類型的方法是用與返回
5、用abstract修飾符修飾的類和方法有什么特點?
修飾的類為抽象類,包含有抽象方法,
修飾的方法,為抽象方法只有方法體而沒有具體實現(xiàn)
6、protect修飾的方法與不加任何修飾的方法有什么不同?
加上為修飾后訪問為同一包中和該類的子類,不加為默認的包訪問權(quán)限。
7、什么是對象?什么是類?它們之間有什么關(guān)系
對象:具有某些屬性和行為的名詞,類:具有相同屬性以及相同行為的一組對象,關(guān)系:對象是類的實例化
8、請描述對象的初始化順序。
對象初始化順序:加載類,分配內(nèi)存空間,清零,加載變量然后方法。先父類靜態(tài)變量,父類靜態(tài)塊,子類靜態(tài)成員變量,子類靜態(tài)塊,父類非靜態(tài)變量,父類構(gòu)造函數(shù),子類非靜態(tài)變量,子類構(gòu)造函數(shù)
9、什么是繼承?繼承的特性可給面向?qū)ο缶幊處硎裁春锰帲?/p>
繼承:子類繼承父類的方法和屬性,使程序結(jié)構(gòu)清晰,提高代碼復(fù)用,一種isa的關(guān)系。
10、什么是方法的覆蓋?與方法的重載有何不同?方法的覆蓋與屬性的隱藏有何不同?
方法覆蓋:子類重寫與父類同名的方法,擁有相同的參數(shù)名和返回值,多態(tài)的一種體先,重載:具有相同的方法名但是有不同的返回類型或參數(shù)。
屬性隱藏:子類定義與父類同名的屬性,父類的屬性就會被隱藏。
11、請簡述接口和抽象類的區(qū)別。并分別舉例說明應(yīng)用場景。
接口:接口中全是抽象方法,若一個類實現(xiàn)這個接口就必須是先接口中所有的方法。關(guān)鍵字implements和interface抽象類:用關(guān)鍵字abstract修飾,包含抽象方法(僅有方法體而沒有具體實現(xiàn)),可以包含普通方法和構(gòu)造方法,使用時不能用new創(chuàng)建實例
12、說出ArrayList,Vector,LinkedList的存儲性能和特性
ArrayList和Vector都是集合,按數(shù)組的方式存儲,查找比較快,vector是線程安全的,但效率上低于arraylist,Linkedlist:鏈式集合雙向鏈表,按序號索引數(shù)據(jù)進行向前向后遍歷,所以插入和刪除數(shù)據(jù)最快。
13、請說明Collection和Collections的區(qū)別。
Collection是一個j集合的接口,set和list都實現(xiàn)這個接口
Collection:是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作
14、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?
hashset我們自己區(qū)分的時候利用迭代器iterator,內(nèi)部利用hashcode然后equals方法實現(xiàn)區(qū)分是否重復(fù)。
15、Error和Exception它們繼承自哪個類?有什么區(qū)別?
繼承Throwable這個類,
區(qū)別:error錯誤,一般來說很難回復(fù),如內(nèi)存溢出,exception,則為程序正常運行時永遠不會發(fā)生的的異常,程序員需要處理。
16、什么情況出現(xiàn)NullPointerException異常?怎樣處理?
使用一個對象是,對象為null,在適用對象前進行判斷
17、請列舉Java類中的方法修飾符,并簡述其含義。
18、try{}里有一個return語句,那么緊跟在這個try后的finally{}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前
還是后?
會,在return前
19、Java中如何讀寫文件,請寫出Java代碼實現(xiàn)讀寫文件的基本過程。20、常見的xml解析方式有哪些?區(qū)別是什么?
Sax,dom:dom一次性全部讀取xml文件,創(chuàng)建一個一顆文檔樹,故讀取大文件是熟讀緩慢
21、簡要描述數(shù)據(jù)庫連接池的工作機制,并列出使用數(shù)據(jù)庫連接池的優(yōu)點。
程序運行時,創(chuàng)建一定數(shù)量的池連接,比在以后維持不少于這個數(shù)量的連接。提高程序運行的效率
22、對于一個Linux命令,可以通過哪些方法了解其具體的使用方法。
Help,info,man,使用格式helpls;lshelp;infols;manls;
23、Linux系統(tǒng)中,請簡要描述文件和目錄的訪問權(quán)限的9個權(quán)限位的作用,請列舉修改權(quán)限的命令。
Xxxxxxxxx;前三位表示所有者的可讀可寫可操作權(quán)限,中間所有者的所在用戶組;后三位是其他用戶,Chmod777要更改權(quán)限的對象。
24、數(shù)據(jù)庫中,什么叫視圖(View),什么叫索引(Index)?什么情況下會用到索引,視圖的主要作用有哪些。
視圖:一張?zhí)摂M的邏輯表。并不包含實際的數(shù)據(jù),相當于一個窗口,可通過該窗口對數(shù)據(jù)進行查詢和修改。作用:使復(fù)雜查詢變得容易,提供數(shù)據(jù)獨立性,限制數(shù)據(jù)訪問。索引:幫助查找數(shù)據(jù)。用指針加速取回數(shù)據(jù)。
Javaweb部分
1、請簡述對J2EE的理解。
由sun公司提供的一種企業(yè)級基于組件的java開發(fā)規(guī)范。J2EE定義了13種組件如servlet,jsp,jdbc等。2、簡要描述對mvc的理解,并舉例說明在項目中的實現(xiàn)思路
Mvc是一種開發(fā)模式,優(yōu)點:耦合性低,可維護性高。,分別代表三個單詞:Modle,Veiw,Control,模型層控制程序的業(yè)務(wù)邏輯,視圖層,是接受用戶輸入和顯示數(shù)據(jù)給用戶與用戶交互,控制層:控制程序走向,模型層與視圖層的中間橋梁。3、Javascript有什么特點?并說明其主要用途。
Javascript:一種腳本語言,是基于事件的面向?qū)ο笳Z言,弱數(shù)據(jù)類型,安全,運行速度快,有強大的函數(shù)庫,
主要用途:客戶端驗證用戶輸入,給用戶動態(tài)的提示。美化頁面。4、什么是servlet容器?它的作用是什么?
Servlet容器:用于創(chuàng)建和維護servlet,提供一個運行環(huán)境給servlet的東西。5、請描述servlet的生命周期以及在每個階段所調(diào)用的方法。
實例化:有容器進行。初始化:調(diào)用init()方法。處理請求:根據(jù)請求方式的不同調(diào)用service()中的不同方法如:doget,dopost。銷毀:調(diào)用destroy方法。6、怎樣在web.xml文件中注冊一個servlet?
主要兩大塊:
7、請描述在servlet中forward和redirect的區(qū)別與聯(lián)系。
Forword:請求轉(zhuǎn)發(fā),服務(wù)器跳轉(zhuǎn),一次請求,地址欄不改變,request對象中的信息不丟失。Redirect:請求重定向,客戶端跳轉(zhuǎn),兩次請求,地址欄改變,request對象中的信息丟失。8、請描述jsp的執(zhí)行過程。
Jsp執(zhí)行經(jīng)過兩個階段:1、轉(zhuǎn)譯階段,將jsp轉(zhuǎn)譯為servlet,
2、編譯servlet,生成.class文件,
3、調(diào)用.class文件生成html頁面顯示給用戶。
9、如何執(zhí)行一個線程安全的JSP?
10、Jsp的9個內(nèi)置對象是什么?他們分別有什么作用。
Jsp九大內(nèi)置對象:page,request,response,session,application,pagecontext,config,exception,out。四個域?qū)ο螅簅ut輸出信息,e:處理異常,config:拿到一些配置信息。11、請列舉出至少5個request對象的常用的方法。12、Jsp的四個域?qū)ο笫鞘裁?他們的“域”指的是什么?/p>
Page,requerst,session、,application,域表示有效時間,及在什么范圍內(nèi)有效。13、請列列舉四個jsp指令,并說明它們的含義。
Page:設(shè)置頁面屬性,taglib,:標簽指令,include:包含指令。14、Jsp有哪些動作?作用是什么?
15、請描述Jsp和servlet的區(qū)別與聯(lián)系。
。。。。。。。。
16、請說出在jsp中靜態(tài)包含和動態(tài)包含技術(shù)的異同點。
靜態(tài)是先包含再執(zhí)行,動態(tài)為先執(zhí)行在編譯。
17、在JSP開發(fā)過程中,對于同一個用戶的會話,要想在不同的頁面之間共享數(shù)據(jù),可以有幾種選擇?請一一列舉
Request,session,application,cookie,重寫地址欄,隱藏域。18、請說明過濾器的工作原理以及重要的接口。
過濾器:當一個請求到達是過濾器會進行攔截,服務(wù)器響應(yīng)消息時也會同樣攔截。根據(jù)編寫的故偶濾器確定是否放行和是否要做相應(yīng)的處理。重要接口:filter,filterchain,filterconfig。19、什么是監(jiān)聽器?它的作用是什么,請舉例說明。
監(jiān)聽器是:專門用于對其他對象身上發(fā)生的事件或狀態(tài)改變進行監(jiān)聽和相應(yīng)處理的對象,當被監(jiān)視的對象發(fā)生情況時。監(jiān)聽域?qū)ο笞陨淼膭?chuàng)建和銷毀的事件監(jiān)聽器監(jiān)聽域?qū)ο笾械膶傩缘脑黾雍蛣h除的事件監(jiān)聽器
監(jiān)聽綁定到HttpSession域中的某個對象的狀態(tài)的事件監(jiān)聽器
20、使用http傳輸協(xié)議將客戶端的請求傳送至服務(wù)器端最常用的是哪兩種方式,他們的區(qū)別是什么。
Get,post,
Get:方式相對來說速度較快,當傳輸?shù)臄?shù)據(jù)量要小于1kb,傳輸?shù)男畔诘刂窓陲@示,安全性存在隱患。Post:比get方式安全,傳遞的數(shù)據(jù)量也比之要大。21、簡述struts2的工作流程。
Struts2:核心為一個過濾器,當一個請求到達的時候,服務(wù)器對之進行攔截,參考struts.xml文件,尋找到對應(yīng)配置的action,尋找到action類,對請求做出相應(yīng)的處理。處理完后返回一個String,參考struts.xml文件中的配置的result顯示相應(yīng)的頁面給用戶
22、Struts2配置文件struts.xml中有哪些常用的配置項,它們分別有什么作用?23、請說明在ognl表達式中#、$、%的作用。
Ognl表達式:#是取非valuestack中的值時使用,如request.還有操作集合是時也可以用到。
$配置文件中那取action中的值是會使用到。國際化資源文件中引用ognl表達式%當強制聲明為ognl表達式或字符串是會使用到
24、寫出3組常見的Struts標簽,并簡述其作用。
25、valuestack是什么?它的作用是什么?在頁面中怎樣訪問?
Struts的值棧,存放一些請求響應(yīng)信息,直接訪問。26、請簡要描述Struts2中攔截器的主要作用、配置及執(zhí)行流程。
攔截器,servlet中的過濾器相似,當客戶端請求到達是經(jīng)過攔截器,響應(yīng)是也會經(jīng)過,是一種aop的思想。配置:interceptor
Servlet是線程不安全的,采用多線程的方式調(diào)用service方法。CGI就是單線程,所以servlet比之效率高。Servlet實現(xiàn)單線程的方法:實現(xiàn)singleThreadmodel。
創(chuàng)建線程的兩種方式:繼承Thread這個類,或?qū)崿F(xiàn)runnable這個接口,啟動線程:statrt(),啟動后會調(diào)用run方法。Sleep和wait()區(qū)別:sleep不會釋放鎖。Wait()釋放鎖,必須有notify()喚醒。多線程中實現(xiàn)線程安全:利用關(guān)鍵字synchronized,一把鎖,實現(xiàn)同步。死鎖的條件:互斥條件,不可剝奪資源,循環(huán)等待,請求與保持條件。反射:加載驅(qū)動,Class.forName(“類的完整類名”)通過一個class對象拿到其相應(yīng)的方法屬性。組件:就是對數(shù)據(jù)和方法進行了簡單封裝。
友情提示:本文中關(guān)于《第二階段WEB開發(fā)基礎(chǔ)學習總結(jié)》給出的范例僅供您參考拓展思維使用,第二階段WEB開發(fā)基礎(chǔ)學習總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。