杭州公司筆試題目_第1頁
杭州公司筆試題目_第2頁
杭州公司筆試題目_第3頁
杭州公司筆試題目_第4頁
杭州公司筆試題目_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1.離線查詢?nèi)コ貜?fù)項(xiàng)怎么加條件?

dc.selRmullTransformer(Crileria.DISTINCT_ROOT_ENTITY);

2.http協(xié)議及端口,smtp協(xié)議及端口

超文本傳輸協(xié)議端口80

簡單郵件傳輸協(xié)議端口25

3.編寫程序,完成文件復(fù)制功能錯(cuò)誤?

InputStreamis=newInputStream();

OutputStrcamos=newFileOutputStream(newFile("寫入的文件的路徑"));byte[]

buff=newbyte[8192];intlength=0;

while((length=is.read(buff))!=-l){

os.write(buff,0,length);

}然后try...catch。..finally{關(guān)閉流}

4.Servlel創(chuàng)建過程及生命周期Servle1在容器中運(yùn)行時(shí),其實(shí)例的創(chuàng)建及銷毀等是由容器進(jìn)

行控制。

Servlet的創(chuàng)建有兩種方法。

1、客戶端請求對應(yīng)的Senlet時(shí),創(chuàng)建Servlet實(shí)例;大部分Servlet都是這種Servleto

2^通過在web.xml中設(shè)置load-on-starlup來創(chuàng)建servlet實(shí)例,這種實(shí)例在Web應(yīng)用啟動(dòng)

時(shí),立即創(chuàng)建Servlet實(shí)例

Servlet的運(yùn)行都遵循如下生命周期:

1、創(chuàng)建Servlet實(shí)例。

2、Web容器調(diào)用Servlet的init方法,對Servlet進(jìn)行初始化。

3、Servlet初始化后,將一直存在于容器中,用于響應(yīng)客戶端請求。。如果客戶端有g(shù)et請

求,容器調(diào)用Se凹let的doGet方法處理并響應(yīng)請求。對于不同的請求,有不同的處理方

法,或者統(tǒng)一使用service方法處理來響應(yīng)用戶請求。

4、Web容器角色銷毀Servlet時(shí),調(diào)用Servlet的destroy方法,通常在關(guān)閉Web容器之

時(shí)銷毀Servleto

5.用sql語句分頁:list.map.set的存儲(chǔ)特點(diǎn)?

List以特定次序來持有元素,可有重復(fù)元素.Set無法擁有重亞元素,內(nèi)部排序.Map保存

key-value值,value可多值

6.final,finally,finaliz的區(qū)別

final一修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,

不能作為父類被繼承。因比一個(gè)類不能既被聲明為abstract的,又被聲明為final的。將

變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲

明時(shí)給定初值,而在以后的引用中只能讀取,不可修改被聲明為final的方法也同樣只能

使用,不能重載。

finally一再異常處理時(shí)提供finally塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相

匹配的catch子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally塊(如果有的話)。

finalize一方法名。Java技術(shù)允許使用finalize。方法在垃圾收集器將對象從內(nèi)存中清除

出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)

對象調(diào)用的。它是在Objeci類中定義的,因此所有的類都繼承了它。子類覆蓋;finalize。

方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作finalizeO方法是在垃圾收集器刪除對象之前

對這個(gè)對象調(diào)用的。

7.arraylist和vector的區(qū)別?

ArrayList作為一個(gè)常規(guī)用途的對象容器使用,用于替換原先的Vector。允許我們快速訪問

元素,但在從列表中部插入和刪除元素時(shí),速度卻嫌稍慢。

一般只應(yīng)該用Listiterator對一個(gè)ArrayList進(jìn)行向前和向后遍歷,不要用它刪除和插入元素;

與LinkedList相比,它的效率要低許多

8.Arraylistlinkedlist區(qū)別?

ArrayList采用的是數(shù)組形式來保存對象的,這種方式將對象放在連續(xù)的位置中,所以最大

的缺點(diǎn)就是插入刪除時(shí)非常麻煩LinkedList采用的將對象存放在獨(dú)立的空間中,而旦在每

個(gè)空間中還保存下一個(gè)鏈接的索引但是缺點(diǎn)就是查找非常麻煩要叢第一個(gè)索引開始

9.haSHMAP,HASHTABLE區(qū)另I」

1.Hashtable是Dictionary的子類,HashMap是Map接口的一個(gè)實(shí)現(xiàn)類:

2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。

3.在HashM叩中,null可以作為鍵,這樣的鍵只有一個(gè);可以有一個(gè)或多個(gè)鍵所對應(yīng)的值為

nulL

10.描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理

Cookie是在客戶端開辟的一塊可長期存儲(chǔ)用戶信息的地方;Session是在服務(wù)器內(nèi)存中開辟

的一塊存儲(chǔ)用戶信息的地方;當(dāng)客戶第一次訪問服務(wù)據(jù)時(shí),服務(wù)相在內(nèi)存創(chuàng)建對應(yīng)的Session

給訪問客戶,當(dāng)客戶離開或時(shí)間過期時(shí):服務(wù)器自動(dòng)銷毀Session;Session是由容器管理

1l.set,map,set接口的區(qū)別

list以特定次序來持有元素,可有重復(fù)元素,查找效率高,插入效率低化,

set無法擁有重更元素,內(nèi)部排序,檢索元素效率低,刪除和插入效率高,因?yàn)椴迦牒?/p>

刪除不會(huì)引起位置上的變化,

12.String和stringbuffer進(jìn)行字符串連接時(shí)的區(qū)別?

String對項(xiàng)內(nèi)容是不可改變的,StringBuffer是可以改變的,別且高效;

13.什么叫項(xiàng)目?

用有限的資源、有限的時(shí)間為特定客戶完成特定目標(biāo)的一次性工作

14.J2EEJ是什么意思?2是什么意思EE是什么意思?Slruls的攔截器你是怎么做的,是

獨(dú)立開發(fā)的,能夠獨(dú)立開發(fā)的到。然后問有哪幾種攔截?

Java2Platform?EnterpriseEdition

繼承Abstract]nterceptor類,覆蓋intercept。方法

有struts0己的攔截器如timer,i18n,scop,servlelconfig,tcken

還有自定義攔截器

15.簡單介紹Fjava?Spring的AOP,1OC的講述對struts2的了解,1,2的比較xml

的了解J2ee的webserviced的協(xié)議?

SpringAOP:代理機(jī)制Spring提供的自動(dòng)代理機(jī)制

Spring的IoC來實(shí)組件之間的依賴關(guān)系注入,使控制層與業(yè)務(wù)實(shí)現(xiàn)分離,即客戶通過

調(diào)用業(yè)務(wù)委托接口來調(diào)用具體的業(yè)務(wù)組件的實(shí)例,避免控制層與業(yè)務(wù)層的藕合帶來的維護(hù)

或升級(jí)困難。由Spring為DAO生成代理對象來為DAO添加事務(wù)服務(wù),由IoC容器DAO的代理實(shí)例注

入到業(yè)務(wù)組件中,業(yè)務(wù)組件通過DAO的委托接口調(diào)用DAO對象,使得上層組件不直接依賴于DAO的實(shí)現(xiàn)

類,使得持久層更換或修改不影響上層組件。

16.Collections,collection的區(qū)別

Collection是個(gè)java.uiil卜的接口,它是各種集合結(jié)構(gòu)的父接口。Collections是個(gè)java.util

下的普通類,它包含有各種有關(guān)集合操作的靜態(tài)方法。Collections是針對集合類的一個(gè)幫

助類,它提供一系列的郛態(tài)方法實(shí)現(xiàn)對各種集合的搜索,排序,線程安全化等操作

17.如何釋放過度使用的undo表空間

釋放undo表空間1.啟動(dòng)SQLPLUS,并用sys登陸到數(shù)據(jù)庫。2.查找數(shù)據(jù)庫的UNDO

表空間名3.確認(rèn)UNDO表空間;SQL>selectnamefromvStablespace;NAME

4.檢查數(shù)據(jù)庫UNDO表空間占用空間情況以及數(shù)據(jù)文件存放位置;5.查看回滾段的使

用情況,哪個(gè)用戶正在使用回滾段的資源,如果有用戶最好更換時(shí)間6.檢查UNDO

Segment狀態(tài)

18.數(shù)據(jù)庫里面游標(biāo),索引是怎么用的?在oracle數(shù)據(jù)庫中,用get和load方法這2個(gè)方

法來查沒有的數(shù)據(jù)那么分別會(huì)反饋什么樣的結(jié)果?

declarecurcursorkeysetfor

gel返回null,loadclassnotfoundException

19.在Oracle中數(shù)據(jù)庫中的一個(gè)表中,這個(gè)表沒有主鍵id也沒有特定標(biāo)示來查數(shù)據(jù),怎么查?

rowid

20.簡述privale、proleced、public、internal修飾符的訪問權(quán)限2.概述反射和序列化

請裂舉session、cookie、viewstatedn的應(yīng)用范圍4、簡述WebService和Remoting的特點(diǎn)

和運(yùn)用場景

同一個(gè)類同一個(gè)包不同包的子類不同包非子類

private*

default**

protected***

public****

Reflection是Java被視為動(dòng)態(tài)(或準(zhǔn)動(dòng)態(tài))語言的一個(gè)關(guān)鍵性質(zhì)。這個(gè)機(jī)制允許程序在運(yùn)行時(shí)透過Refl

ectiunAPIs取得任何一,卜己知名稱的class的內(nèi)部信息,包括其modifiers(public,static第等)、

superclass(例如Object)、實(shí)現(xiàn)之interfaces(例如Cloneable),也包括fields和methods的所

有信息,并可于運(yùn)行時(shí)改變佗Ids內(nèi)容或喚起methods。本文信由實(shí)例,大面積示范ReflectionAPIs。

序列化就是一種用來處理對象流的機(jī)制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化??梢詫α骰蟮膶ο?/p>

進(jìn)行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對?對象流進(jìn)行讀寫操作時(shí)所引

發(fā)的問題。

序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn)Serializable接口,該接口沒有需要實(shí)現(xiàn)的方法,

implementsSerializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個(gè)輸出流(如:

Fileoutputstream)來構(gòu)域一個(gè)ObjectOutputStreamf對象流)對象,接著,使用

ObjectOutputStream對象的writeObject(Objectobj)方法就可以將參數(shù)為obj的對象寫出(即保存其

狀態(tài)),要恢復(fù)的話則用輸入流

21.ORACLE中not和and和or優(yōu)先級(jí)由高到低?

notandor

22.java是如何進(jìn)行異常處理的

調(diào)用這個(gè)對象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Java的異常處理是通過5個(gè)關(guān)鍵

詞來實(shí)現(xiàn)的:try、catch、throw、ihrows和finally。一般情況下是用try來執(zhí)行一段程序

23.struts2必備包

coninions-filcupload-1.2.1.jar

commons-io-1.3.2.jar

commons-logging-api-1.1.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

Dao是數(shù)據(jù)訪問對象DAO負(fù)責(zé)管理與數(shù)據(jù)源的連接來獲取和儲(chǔ)存其中的數(shù)據(jù)

ibtis中的#與$的區(qū)別

1、客戶端初始化一個(gè)指向Servlet容器(例如Tomcat)的請求

2、這個(gè)請求經(jīng)過一系列的過濾器(Filler)(這些過濾器中有一個(gè)叫做AclionConlexlQeanUp

的可選過濾器,這個(gè)過濾器對于Struts2和其他框架的集成很有幫助,例如:SitcMcsh

Plugin);

3、接著FiltcrDispatchcr被調(diào)用,F(xiàn)iltcrDispatchcr詢問ActionMappcr來決定這個(gè)請求是否

需要調(diào)用某個(gè)Action;

4、如果ActionMapper決定需要調(diào)用某個(gè)Action,FilterDispatcher把請求的處理交給

ActionProxy;

5、ActionProxy通過ConfigurationManager詢問框架的配置文件,找到需要調(diào)用的Action

類;

6、ActionProxy創(chuàng)建一個(gè)Actioninvocation的實(shí)例。

7、Actioninvocation實(shí)例使用命名模式來調(diào)用,在調(diào)用Action的過程前后,涉及到相關(guān)攔

械器(Intercepter)的調(diào)用。

8、一旦Action執(zhí)行完畢,Actioninvocation負(fù)責(zé)根據(jù)struts.xnil中的配置找到對應(yīng)的返回

結(jié)果。返回結(jié)果通常是(但不總是,也可能是另外的一個(gè)Action鏈)一個(gè)需要被表示的

JSP或者FreeMarker的模版。在表示的過程中可以使用Slruts2框架中繼承的標(biāo)簽。在這

個(gè)過程中需要涉及到ActionMappcr

簡述spring的事務(wù)傳播行為和隔離級(jí)別

25.寫一段把本地文件formfile拷貝到本地文件(oiile的程序

publicclassChangeJtdToJava{

publicstaticvoidmain(String[]args){

Filedir=newFile("f:/jld");

//得到d:/jtd下的所有文件對象

File[]files=dir.listFiles();

for(Filefile:files){

StringfileName=file.getName();//得到文件名

intindex=fileName.indexOf(".");〃.的索引位置

StringfileName?=fileName.substring(O,index);//不帶后綴名的文件名

StringhouZui=fileName.substrinxg(index);

if(houZui.equals(".jtd")){

//"f:/java/"+fileName2+".java"

//要移到的地方

file.renameTo(newFile("f:/java/"+fileName2+".java"));

I

)

}

26.寫出刪除表中重復(fù)記錄的語句oracle

deletefrompeople

wherepeopleldin(selectpeopleldfrompeoplegroupbypeopleldhaving

count(peopleld)>1)androwidnotin(selectmin(rowid)frompeoplegroupby

27.用java實(shí)現(xiàn)一種排序,java類實(shí)現(xiàn)序列化的方法(二種)?如在collection框架中,要實(shí)現(xiàn)什么樣

的接口

java.io.Serializable接口Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable接口和

Comparator接口

28.Struts2是如何實(shí)現(xiàn)攔截器的?

Struts2攔截器是在訪問某個(gè)Action或Action的某個(gè)方法,字段之前或之后實(shí)施攔截,

并且Struts2攔截器是可插拔的,攔截器是A0P的一種實(shí)現(xiàn)。實(shí)現(xiàn)原理:當(dāng)請求siruts2

的action時(shí),Slnils2會(huì)查找配置文件,并根據(jù)其配置實(shí)例化相對的攔截器對象,

然后串成一個(gè)列表,最后一個(gè)一個(gè)地調(diào)用列表中的攔截器

29.sleep。和wait。區(qū)別

sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他

線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對象鎖。wait。.

會(huì)釋放鎖

3O.Servlet的生命周期分為5個(gè)階段:?和CGI的區(qū)別?

實(shí)例化:Servlet容器創(chuàng)建Servlet類的實(shí)例。

初始化:該容器調(diào)用iMt()方法,通常會(huì)申請資源。

服務(wù):由容器調(diào)用service。方法,(也就是doGet()和doPost())。

破壞:在釋放Servlet實(shí)例之前調(diào)用destroy。方法,通常會(huì)釋放資源。

31.foward和redirect區(qū)另。

redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請求那個(gè)地址,一般來

說瀏覽器會(huì)用剛才請求的所有參數(shù)重新請求,所以session,requesl參數(shù)都可以獲取。web

應(yīng)用程序會(huì)要求客戶端瀏覽器重新發(fā)出請求地址,客戶端會(huì)重新連接至所指定的地址,

因此瀏覽器的地址會(huì)出現(xiàn)重新導(dǎo)向的信息,重新導(dǎo)向后的請求由瀏覽器發(fā)出,所以不能

訪問Web應(yīng)用程序中的隱

32.多線程、同步實(shí)現(xiàn)方法?

實(shí)現(xiàn)線程有兩種繼承Thread類或者實(shí)現(xiàn)Runnable接口…實(shí)現(xiàn)同步也有兩種,一種是用

同步方法,一種是用同步塊..同步方法就是在方法返回類型后面加.上synchronized,比

如:

publicvoidsynchronizedadd(){...}

同步塊就是直接寫:synchronized(這里寫需要同步的對象){...}

33.集合類有哪些?有哪些方法?

集合類ArrayLislLinkedListHashSetHashMap方法:

add(),remove(),put(),addAll(),removeAll()

34.java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么

重寫,重載

35.靜態(tài)的多態(tài)和動(dòng)態(tài)的多態(tài)的區(qū)別

靜態(tài)的多態(tài):方法名相同,參數(shù)個(gè)數(shù)或類型不相同。(overloading)

動(dòng)態(tài)的多態(tài):子類覆蓋父類的方法,將子類的實(shí)例傳與父類的引用調(diào)用的是子類的方法

實(shí)現(xiàn)接口的實(shí)例傳與接口的引用調(diào)用的實(shí)現(xiàn)類的方法。

36.作用域Public,private,protected似及不寫時(shí)的區(qū)別

public整個(gè)java程序中郛可以訪問

protected在其他包中不可以詢問

friendly只有當(dāng)前包或當(dāng)前內(nèi)可以訪問,其他都不行

private只有當(dāng)前內(nèi)可以訪問

不寫的話默認(rèn)是protected

37.extends和implement的彳、同

extends是繼承父類,只要那個(gè)類不是聲明為final或者那個(gè)類定義為abstract的就能繼

承,JAVA中不支持多重繼承,但是可以用接口來實(shí)現(xiàn),這樣就要用到implements,繼

承只能繼承一個(gè)類,但implements可以實(shí)現(xiàn)多個(gè)接口,用逗號(hào)分開就行了比如class

AextendsBimplementsC,D,E

38.常用的設(shè)計(jì)模式?定義一個(gè)變量,Varv=ncwObject.用js編寫的簡便寫法是什么?join

與leftjoin的區(qū)另I]

DAO設(shè)計(jì)模式與DELEGATE模式

適配器模式與橋梁模式的區(qū)別

工廠模式

innerjoin:內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運(yùn)算符比較被連接列

的列值

leftjoin:內(nèi)連接時(shí),返回查詢結(jié)果集合中的僅是符合查詢條件(WHERE搜索條件

或HAVING條件)和連接條件的行。而采用外連接時(shí),它返回到查詢結(jié)果集合中的不僅包含

符合連接條件的行,而且還包括左表(左外連接時(shí))、右表(右外連接時(shí))或兩個(gè)邊接表(全外連

接)中的所有數(shù)據(jù)行

39.Hibernale中離線查詢與在線查詢的區(qū)別

Criteria和DetachedCriteria的主要區(qū)別在于創(chuàng)建的形式不一樣,Criteria是在線的,

所以它是由HibernateSession進(jìn)行創(chuàng)建的;而DetachedCriteria是離線的,創(chuàng)建時(shí)無

需Session,DetachedCriteria提供了2個(gè)靜態(tài)方法forClass(Class)或

forEntityName(Narne)進(jìn)行DetachedCriteria實(shí)例的創(chuàng)建。

40.C#數(shù)據(jù)類型有哪些?

int整型double雙精度型string字符串型char字符型bool布爾型

41.抽象類能否被實(shí)例化

抽象類通常不是由程序員定義的,而是由項(xiàng)目經(jīng)理或模塊設(shè)計(jì)人設(shè)計(jì)抽象類的原因通

常是為了規(guī)范方法名抽象類必須要繼承,不然沒法用,作為模塊設(shè)計(jì)者,可以把讓底

層程序員直接用得方法直接調(diào)用,而一些需要讓程序員覆蓋后自己做得方法則定義稱抽

象方法

42.ASP.NET頁面?zhèn)鬟f值的方式有哪些

1通過URL鏈接地址傳遞2通過post方式。

send.aspx3通過session4通過Application

5通過Server.Transfersend.aspx:

43.如何定義一個(gè)窗口為MDI窗口?

MDI窗口就是說一個(gè)窗體做為容器,里面還可以添加其他窗體

44.WCF是什么?

WCF是微軟用以應(yīng)對SOA解決方案的開發(fā)需求而專門推出的是專門用丁?服務(wù)定制、

發(fā)布與運(yùn)行以及消息傳遞和處理的一組專門類的集合,也就是所謂的“類庫

45.常用的包,類,接口,各舉5個(gè)。

類StringIntegerLongFileDate包java.lang.*;java.io.*;java.util.*;java.swt.*;

java.malh.*;接口:Comparable,Connection,Map,List,Runable,

46.

1,網(wǎng)上購物系統(tǒng)的類圖,用例圖。

2,給你一個(gè)整數(shù)類型的數(shù)組,按從小到大的順序進(jìn)行排列!

publicstaticvoidfun(int[]a,intc)

(

for(in(i=O;i<a.lenglh-l;i++)

for(intj=i;j<a.length-l;j++)

if(ali]<a|j])

(

t=a[i];

a[i]=a[jl;

1

)

Syslem.oul.prinl(a[i]+"");

}

}

食詢出M頁的N行數(shù)據(jù)。

SelecttopNfromtablewhereidnotin(selecttop(M-1)*Nidfromtable)

l.linkedlistarraylist內(nèi)部是如何實(shí)現(xiàn)的newArrayLisl(lO)含義

47.面向?qū)ο笾饕獌?nèi)容?有什么作用?

就分析設(shè)計(jì)層面來說,面向?qū)ο蠹夹g(shù)提供了更高級(jí)的抽象能力以及更多的方法和工具,

如設(shè)計(jì)模式;就實(shí)現(xiàn)維護(hù)層面來說,面向?qū)ο蠹夹g(shù)使代碼重用更容易,且使代碼具有

可擴(kuò)展性,便于軟件的維護(hù)和升級(jí)更新。

49.如何移動(dòng)一個(gè)數(shù)是62-63=1成立

62-63=1如何移動(dòng)2的6次方等于642的6次方-63=1把2移動(dòng)到6的左下方

5O.JavaSQL2005導(dǎo)入importdata數(shù)據(jù)源例如有Oracle中的blob字段是否要用ole驅(qū)動(dòng)、遞

歸實(shí)現(xiàn)1,123,5,8,….第30個(gè)數(shù)是多少?

publicstaticintFoo(inti)

(

if(i<=0)

return0;

elseif(i>0&&i<=2)

return1;

elsereturnFoo(i-1)+Foo(i-2);

I

inti=Foo(30);

System.out.println(i);

51.JAVA實(shí)現(xiàn)向數(shù)據(jù)庫添加一列

Connectioncon=null;

ResultSetrs=null;

Class.forName("coin.microsoft.jdbc.sqlserver.SQLServerDriver");

Siringurl="jdbc:inicrosof(:sqlserver://localhost:1433;DaiabaseName=db_name";

Connectioncon=DriverManager.getConnection(url,

StaleManagersm=con.creaieStateMent();

Stringsql="insertableintovalues("aa","bb")";

rs=sm.excute(sql);

52.寫出刪除表中重復(fù)記錄的語句oracle

deletefrompeople

wherepeopleldin(selectpeopleldfrompeoplegroupbypeopleldhaving

count(peopleld)>1)androwidnotin(selectmin(rowid)frompeoplegroup

1:用什么方法使服務(wù)器關(guān)閉之后,session所保存的信息不會(huì)丟失?

使用cookie

2:如果頁面沒有標(biāo)簽,會(huì)出現(xiàn)什么錯(cuò)誤代碼?

沒有什么變化

3:抽象類是否可以沒有拍象方法?為什么?

可以在java中用abstract關(guān)鍵字來修飾一個(gè)類時(shí),這個(gè)類叫做抽象類。

抽象類中不一定要包含abstract方法,但一個(gè)類中包含了abstract方法,則這個(gè)類必須

聲明為abstract類。

4:servlet中的init方法什么時(shí)候被調(diào)用?

容器首次創(chuàng)建實(shí)例的時(shí)候

53.用4個(gè)0,用你所知道的數(shù)學(xué)方法計(jì)算出24

。的階乘等于1即0!=1那么4個(gè)。就是4了

又4的階乘為244!=24

54.1inux中進(jìn)程的杳看和調(diào)度分別用什么命令?

ps-A查看renicetop

55.sleep()和wait區(qū)別

sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,

但是監(jiān)控狀態(tài)依然保持,到時(shí)后

56.集合類有哪些?有哪些方法?

集合類ArrayListLinkedListHashSetHashM叩方法:

add(),remove(),pul(),addAll(),removeAII()

57.OSI七層模型tep四層模型是什么樣的

OSI七層參考模型:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層、會(huì)話層、表示層

TCP/IP:第一層網(wǎng)絡(luò)接口層第二層第二層??網(wǎng)間層第三層??傳輸層第四層??應(yīng)用層

58.JAVA測試模式(ZZ):

模式(一)Main模式

模式(二)toString模式

模式(三)Equal模式

模式(四)InternalTesterClass模式

模式(五)ExternTesterCiass模式

60.一學(xué)生表!有班及id,學(xué)號(hào)!成績!一求平均成績!二求比平均成績高的學(xué)生的所有信

selectid,avg(成績)fromtablegroupbyid

select*fromtablewhere成績>(select成績from(selectid,avg(成績)成績fromtable

groupbyid)asa)

61.jdk的新特性

“JDK1.5”的一個(gè)重要主題就是通過新增一些特性來簡化開發(fā),這些特性包括泛型,for-each

循環(huán),自動(dòng)裝包/拆包,枚舉,可變參數(shù),靜態(tài)導(dǎo)入。使用這些特性有助于我們編寫更加

清晰,精悍,安全的代碼,

62.j2cc的規(guī)范?

SUN公司定義的一個(gè)開發(fā)分布式企業(yè)級(jí)應(yīng)用的規(guī)范。它提供了一個(gè)多層次的分布式應(yīng)用模

型和?系列開發(fā)技術(shù)規(guī)范,多層次分布式應(yīng)用模型是指根據(jù)功能把應(yīng)用邏輯分成多個(gè)層次,

每個(gè)層次支持相應(yīng)的服務(wù)器和組件,組件在分布式服務(wù)器的組件容器中運(yùn)行(如Servlet組

件在Servlet容器上運(yùn)行,EJB組件在EJB容器上運(yùn)行),容器間通過相關(guān)的協(xié)議進(jìn)行通訊,

實(shí)現(xiàn)組件間的相互調(diào)用J2EE規(guī)范定義了以下四個(gè)層次。I.客戶端層(ClientTier)2.W?b層

3.業(yè)務(wù)層(BusinessTier)4.企業(yè)信息系統(tǒng)層

63.ajax的工作原理?

Ajax基本上就是把JavaScript技術(shù)和XMLHttpRequest對象放在Web表單和服務(wù)器之間。當(dāng)用戶

填寫表單時(shí),數(shù)據(jù)發(fā)送給一些JavaScript代碼而不是直接發(fā)送給服務(wù)器。相反,JavaScript代碼捕獲

表單數(shù)據(jù)并向服務(wù)器發(fā)送請求。同時(shí)用戶醉幕上的表單也不會(huì)閃爍、消失或延遲。換句話說,JavaScript

代碼在幕后發(fā)送請求,用戶甚至不知道請求的發(fā)出。更好的是,請求是異步發(fā)送的,就是說JavaScript

代碼(和用戶)不用等待服務(wù)器的響應(yīng)。因此用戶可以繼續(xù)輸入數(shù)據(jù)、滾動(dòng)屏幕和使用應(yīng)用程序。

然后,服務(wù)器將數(shù)據(jù)返回JavaScript代碼(仍然在Web表單中),后者決定如何處理這些數(shù)據(jù)。它

可以迅速更新表單數(shù)據(jù),讓人感覺應(yīng)用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數(shù)據(jù)。

JavaScript代碼甚至可以對收到的數(shù)據(jù)執(zhí)行某種計(jì)算,再發(fā)送另一個(gè)請求,完全不需要用戶干預(yù)!這就是

XMLHttpRequest的強(qiáng)大之處。它可以根據(jù)需要自行與服務(wù)器進(jìn)行交互,用戶甚至可以完全不知道幕后

發(fā)生的?切。結(jié)果就是類似于桌面應(yīng)用程序的動(dòng)態(tài)、快速響應(yīng)、高交互性的體驗(yàn),但是背后又擁有互聯(lián)網(wǎng)

的全部強(qiáng)大力量。

64.Xml特點(diǎn)?

65.oracle中除了數(shù)據(jù)庫備份,還有什么方法備份?

66.j2ee的常用設(shè)計(jì)模式

Factory(工廠模式),Builder(建造模式)fFacloryMethod(工廠方法模式),Prototype(原

始模型模式),Singleton(單例模式),Facade(門面模式),Adapter(適配器模式),Bridge

(橋梁模式)

67.由aaa字符串得到1000個(gè)a寫個(gè)程序

StringBuildersBuilder=newStringBuilder();

for(inti=O;i<333;i++){

sBuilder.Append("aaa");

sBuilder.Append("aaa".subS(ring(0.1));

68.servlet與cgi的區(qū)別

CGI應(yīng)用開發(fā)比較困難,因?yàn)樗蟪绦騿T有處理參數(shù)傳遞的知識(shí),這不是一種通用的技能。

CGI不可移植,為某一特定平臺(tái)編寫的CGI應(yīng)用只能運(yùn)行于這一環(huán)境中。每一個(gè)CGI應(yīng)用

存在于一個(gè)由客戶端請求激活的進(jìn)程中,并且在請求被服務(wù)后被卸載。這種模式將引起很高

的內(nèi)存、CPU開銷,而且在同一進(jìn)程中不能服務(wù)多個(gè)客戶。

Servlet提供了Java應(yīng)用程序的所有優(yōu)勢一一可移植、穩(wěn)健、易開發(fā)。使用ServlelTag技術(shù),

Servlet能夠生成嵌于靜態(tài)HTML頁面中的動(dòng)態(tài)內(nèi)容

Servlet對CGI的最主要優(yōu)勢在于一個(gè)Servlet被客戶端發(fā)送的第一個(gè)請求激活,然后它將繼

續(xù)運(yùn)行于后臺(tái),等待以后的請求。每個(gè)請求將生成?個(gè)新的線程,而不是一個(gè)完整的進(jìn)程。

多個(gè)客戶能夠在同一個(gè)進(jìn)程中同時(shí)得到服務(wù)。一般來說,Servlel進(jìn)程只是在WebServer卸

載時(shí)被卸載

69.SOCKET中有幾中連接方式,區(qū)別?

Sockets有兩種主要的操作方式:面向連接的和無連接的。無連接的操作使用數(shù)據(jù)報(bào)協(xié)議,無

連接的操作是快速的和高效的,但是數(shù)據(jù)安全性不佳.面向連接的操作使用TCP協(xié)議.面向連

接的操作比無連接的操作效率更低,但是數(shù)據(jù)的安全性更高

70.Socket如何獲取本地ip地址?

publicInetAddressgctLocal/\ddrcss()

71.truncate與delete的區(qū)別?

truncate是DDL^言.delete是DML言吾言DDL言吾言是白勤提交的.命令完成就不可回

海truncate的速度也比delete要快得多.

72.xml有哪些解析技術(shù),及區(qū)別?

有DOM,SAX,STAX等

DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問題是由D0M的樹結(jié)構(gòu)所造成的,這

種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對XML

的隨機(jī)訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序讀取XML文

件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)

束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適

合對XML的順序訪問

73.文件和目錄(i/。)操作,怎么列出某目錄下所有文件?某目錄下所有子目錄,怎么判斷文件

或目錄是否存在?如何讀寫文件?

列出某目錄下所有文件:調(diào)用listFileO,然后判斷每個(gè)File對象是isFile還是isAbstracte(),

判斷文件或目錄是否存在:調(diào)用exist方法,讀寫文件使用FileReader和FileWritcr兩個(gè)類

即可

74.deletefromtablea和truncatetabletablea的區(qū)別!

這里說的delete是指不帶where子句的delete語句

相同點(diǎn):truncate和不帶where子句的delete,以及drop都會(huì)刪除表內(nèi)的數(shù)據(jù)

不同點(diǎn):

1.truncate和delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義)

drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain],觸發(fā)器(trigger),索引(index);依賴

于該表的存儲(chǔ)過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài).

2.delete語句足dml,這個(gè)碟作會(huì)放到rollbacksegement中,事務(wù)提交之后才生效;如果芍相

應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā).

truncate,drop是ddl,操作立即生效,原數(shù)據(jù)不放到rollbacksegment中,不能回滾.操作

不觸發(fā)trigger.

3.delete語句不影響表所占用的extent,高水線(highwatermark)保持原位置不動(dòng)

顯然drop語句將表所占用的空間全部釋放

truncate語句缺省情況下見空間釋放到minextents個(gè)extent,除非使用reusestorage;

truncate會(huì)將高水線復(fù)位(回到最開始).

4.速度,一般來說:drop>truncate>delete

5.安全性:小心使用drop和truncate,尤其沒有備份的時(shí)候.否則哭都來不及

使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句.回滾段要足夠大.

想刪除表,當(dāng)然用drop

想保留表而將所有數(shù)據(jù)刪除.如果和事務(wù)無關(guān),用truncate即可.如果和事務(wù)有關(guān),或者想觸

發(fā)trigger,還是用delete.

75.怎么用java反射得到一個(gè)類的私有方法?

PrivateTesi1=Class.forName(ncoin.test.PrivateTest").newInstance();

Methodmethod2=Class.forNanie("com.test.PrivateTest").getDeclaredMetliod("method",new

Class[]]});

method2.setAccessible(true);

mcthod2.invoke(t,newObject[]{));

76.寫一個(gè)單例模式?描述工廠模式和單例優(yōu)缺點(diǎn)舉例在什么情況下用

簡單工廠模式能夠根據(jù)外界給定的信息,決定究竟應(yīng)該創(chuàng)建哪個(gè)具體類的對象。通

過它,外界可以從直接創(chuàng)建具體產(chǎn)品對象的尷尬局面中擺脫出來。

外界與具體類隔離開來,偶合性低。

?明確區(qū)分了各自的職責(zé)和權(quán)力,有利于整個(gè)軟件體系結(jié)構(gòu)的優(yōu)化。

缺點(diǎn):工廠類集中了所有實(shí)例的創(chuàng)建邏輯,容易違反GRASPR的高內(nèi)聚的責(zé)任分配原則

雖然簡單工廠模式能夠適應(yīng)一定的變化,但是它所能解決的問題是遠(yuǎn)遠(yuǎn)有限的。它所能

創(chuàng)建的類只能是事先教考慮到的,如果需要添加新的類,則就需要改變工廠類了。(這

個(gè)問題在工廠方法模式將得到很好的解決)

應(yīng)用情景工廠類負(fù)責(zé)創(chuàng)建的對象比較少客戶只知道傳入了工廠類的參數(shù),對于始何

創(chuàng)建對象(邏輯)不關(guān)心

77.JVM加載class文件原理?

JVM中類的裝載是由ClassLoader和它的子類來實(shí)現(xiàn)的JavaClassLoader是一個(gè)重要的Java

運(yùn)行時(shí)系統(tǒng)組件。它負(fù)責(zé)在運(yùn)行時(shí)查找和裝入類文件的類ClassLoader其實(shí)就是讀取文

件,按照CLASSPATH配置的順序。然后解析后轉(zhuǎn)化為類

78.Tomcat的class加載的優(yōu)先順序一覽

1.最先HOME/jre/lib/ext/下的jar文件。2.環(huán)境變量CLASSPATH中的jar和class文

3.$CATALINA_HOME/common/classes下的class文件。

4,$CATALINA_HOME/cominons/endorsed下的jar文件《

5.$CATALINA_HOME/commons/i18n下的jar文件。6.SCATALINA_HOME/common/lib下的

jar文件。

(JDBC驅(qū)動(dòng)之類的jar文件可以放在這里,這樣就可以避免在server.xml配置好數(shù)據(jù)源卻出

現(xiàn)找不到JDBCDriver的情況。)

7.SCATALINA_H0ME/server/classes下的class文件。

8.SCATALINA_HOME/server/lib/T的jar文件。

9.$CATALINA_BASE/shared/classes下的class文件。

10.$CATALINA_BASE/shared/lib下的jar文件。

11.各自具體的webapp/WEB-INF/classes下的class文件。

12各自具體的webapp/WEB-INF/lib下的jar文件。

79.CS與BS聯(lián)系區(qū)別

java適合開發(fā)bs結(jié)構(gòu),cs不是它的強(qiáng)項(xiàng)C/S服務(wù)器通常采用高性能的PC、工作站或小型

機(jī),并采用大型數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Infonnix或SQLServero客戶端需要安裝

專用的客戶端軟件。B/S客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),$riInternetExplorer,服

務(wù)器安裝Oracle、Sybase、Infonnix或SQLServer等數(shù)據(jù)庫。在這種結(jié)構(gòu)卜,用戶界面完全

通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。

瀏覽器通過WebServer同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互1.硬件環(huán)境不同:C/S一般建立在專用的

網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù).

B/S建立在廣域網(wǎng)之上的

2.對安全要求不同C/S一般面向相對固定的用戶群,對信息安全的控制能力很強(qiáng).一般高

度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過B/S發(fā)布部分可公開信息.B/S建立在廣

域網(wǎng)之上,對安全的控制能力相對弱,可能面向不可知的用戶

3.對程序架構(gòu)不同C/S程序可以更加注重流程,可以對權(quán)限多層次校驗(yàn)B/S對安全以

及訪問速度的多重的考慮.建立在需要更加優(yōu)化的基礎(chǔ)之上

8().Error和exception的區(qū)別與聯(lián)系

error表示恢復(fù)不是不可能,但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢,網(wǎng)絡(luò)故障等。

不可能指望程序能處理的情況。

exception表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,就不會(huì)發(fā)生的

情況。程序可以捕獲到這些異常,并進(jìn)行處理。

81.在編寫頁面的會(huì)用到哪些技術(shù)??

手寫個(gè)程序在本頁面中心彈出一個(gè)窗體,里面有學(xué)生的成績,可以修改學(xué)生的成績,并

且可以關(guān)閉窗口,把每個(gè)要用的jsp頁面顯示出來。(用JavaScript)

82.用main涵數(shù)輸出一到一百的和。

#include<stdio.h>

intmain(){

printf("sum:%d\n",sum());

return0;

intsum(){

inti;

intsum=0;

for(i=1;i<=100;i++)

sum+=i;

returnsum;

83.查一下每門課程都大于80的學(xué)生姓名

學(xué)生表student分?jǐn)?shù)表grade

selectfromstudentswheres.idnoin(selectg.studenridfromgradegwhereg.marks<=80)

select*fromstudentwherenamein(selectnamefromstudent

wherenamelike'張%'groupbynamehavingavg(score)>75)

84.LIUNIX如何查看CPUJP,內(nèi)存?

Isattr-EImemo查看內(nèi)存的

/sbin/ifeong查看IP的

85J2EE系統(tǒng)訪問速度慢.從哪些方面可以優(yōu)化

J2EE性能的優(yōu)化包括很多方面的,要達(dá)到一個(gè)性能優(yōu)良的系統(tǒng),除了關(guān)注代碼之外,還應(yīng)該根

據(jù)系統(tǒng)實(shí)際的運(yùn)行情況,從服務(wù)器軟硬件環(huán)境、集群技術(shù)、系統(tǒng)構(gòu)架設(shè)計(jì)、系統(tǒng)部署環(huán)境、數(shù)

據(jù)結(jié)構(gòu)、算法設(shè)計(jì)等方面綜合考慮

86.J2EE訪問速度慢,怎么樣優(yōu)化

I使用緩沖標(biāo)記對于代碼邏輯復(fù)雜的頁面,利用緩沖標(biāo)記提高性能的效果比較明顯;反之,效

果可能略遜一籌。2始終通過會(huì)話Bean訪問實(shí)體Bean

一些時(shí)候,使用實(shí)體Bean會(huì)導(dǎo)致程序性能不佳。如果實(shí)體Bean的惟一用途就是提取和更新數(shù)據(jù),

改成在會(huì)話Bean之內(nèi)利用JDBC訪問數(shù)據(jù)庫可以得到更好的性能3選擇合適的引用機(jī)制

4在部署描述器中設(shè)置只讀屬性實(shí)體Bean的部署描述器允許把所有g(shù)et方法設(shè)置成“只讀”。

當(dāng)某個(gè)事務(wù)單元的工作只包含執(zhí)行讀取操作的方法時(shí),設(shè)置只讀屬性有利于提高性能,因?yàn)?/p>

容器不必再執(zhí)行存儲(chǔ)操作5緩沖對EJBHome的訪問

87.haShtable的原理

原理:通過節(jié)點(diǎn)的關(guān)鍵碼確定節(jié)點(diǎn)的存儲(chǔ)位置,即給定節(jié)點(diǎn)的關(guān)健碼k,通過一定的函數(shù)關(guān)系H(散

列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點(diǎn)的存儲(chǔ)地址

88.siruls中的prepare怎么用?

prepare是在validate攔截器之前執(zhí)行

<s:checkboxlistlis(="users"listKey="id"lislValue="name"name="userid"x/s:checkboxlist>

在使用struts?checkboxlist,select綁定list時(shí),有時(shí)候會(huì)出現(xiàn)以下異常

Therequestedlistkey'users'couldnotberesolvedasacollection/array/rnap/enumeration/iteratortype.

Example:peopleorpeople.{name}-[unknownlocation]這樣的錯(cuò)誤。是因?yàn)閘ist的值為空

3.解決辦法是把初始化list的工作放到prepare攔截器中

publicclassRoleActionextendsActionSupportimplementsPreparable{

@Overridc

publicvoidprepare()throwsException{

〃初始化list

89.C#題目conetextmenu控件如何使用..listview

ConiexlMenu組件提供與選定對象相關(guān)的常用命令的菜單。可以通過向Menuitems集合中

添加Menultem對象來向快捷菜單中添加項(xiàng)??梢詮目旖莶藛沃杏谰玫匾瞥敚旱窃谶\(yùn)

行時(shí)隱藏或禁用項(xiàng)可能更為妥當(dāng)。

90.寫一條SQL語句,查詢姓張學(xué)生中平均成績大于75的學(xué)生信息

select*fromstudentwherenamein(selectnamefromstudent

wherenamelike'張%'groupbynamehavingavg(score)>75)

91.從以下方面比較slnHl和siru⑵線程模式、依賴、可測性、表達(dá)式語言、捕獲輸入、綁釘

值到頁面、類型轉(zhuǎn)換

線程模式:Struts1Action是單例模式并且必須是線程安全的,因?yàn)閮H有Action的一個(gè)實(shí)例

來處理所有的請求。單例策略限制了StnitslAction能作的事,并且要在開發(fā)時(shí)特別小心。

Action資源必須是線程安全的或同步的。

?Stnits2Action對象為每一個(gè)請求產(chǎn)生一個(gè)實(shí)例,因此沒有線程安全問題。(實(shí)際上,servlel

容器給每個(gè)請求產(chǎn)生許多可丟棄的對象,并且不會(huì)導(dǎo)致性能和垃圾回收問題)

Servlel依賴:

?Struts1Action依賴于ServletAPI,因?yàn)楫?dāng)?個(gè)Action被調(diào)用時(shí)HttpServletRequest和

HttpServleiResponse被傳潴給execule方法。

,Struts2Action不依賴于容器,允許Action脫離容器單獨(dú)被測試。如果需要,Struts2Action

仍然可以訪問初始的request和response,,但是,其他的元素減少或者消除了直接訪問

HttpServetRequest和HttpSenletResponse的必要性。

可測性:

?測試Struts1Action的一個(gè)主:要問題是execute方法暴露\servletAPI(這使得測試要依賴

于容器)。一個(gè)第三方擴(kuò)展StrutsTestCase提供了一套Strutsl的模擬對象(來進(jìn)行測

試)。

?Struts2Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測試,“依賴注入”支持也使測試

更容易。

捕獲輸入:

?StrutsI使用ActionForm對象捕獲輸入。所有的ActionForm必須繼承一個(gè)基類。因?yàn)槠?/p>

他JavaBean不能用作ActionForm,開發(fā)者經(jīng)常創(chuàng)建多余的類捕獲輸入。動(dòng)態(tài)Bean

(DynaBcans)可以作為創(chuàng)建傳統(tǒng)ActionForm的選擇,但是,開發(fā)者可能是在重新描述(創(chuàng)

建)己經(jīng)存在的JavaBean(仍然會(huì)導(dǎo)致有冗余的javabean)。

?Struts2直接使用Action屬性作為輸入屬性,消除了對第二個(gè)輸入對象的需求。輸入屬性

可能是有自己(子)屬性的rich對象類型。Action屬性能夠通過web頁面上的(aglibs訪問。

Struts2也支持ActionFomi模式。rich對象類型,包括業(yè)務(wù)對象,能夠用作輸入/輸出對象。

這種ModelDriven特性簡化了taglib對POJO輸入對象的引用。

表達(dá)式語言:

?Struts1整合了JSTL,因此使用JSTLEL。這種EL有基本對象圖遍歷,但是對集合和索

引屬性的支持很弱。

?Struts2可以使用JSTL,但是也支持一個(gè)更強(qiáng)大和靈活的表達(dá)式語言一一"ObjectGraph

NotationLanguage"(OGNL).

綁定值到頁面(view):

?StrutsI使用標(biāo)準(zhǔn)JSP機(jī)制把對象綁定到頁面中來訪問。

,Struts2使用"ValueSttck"技術(shù),使taglib能夠訪問值而不需要把你的頁面(view)和對

象綁定起來。ValueStack策略允許通過一系列名稱相同但類型不同的屬性重用頁面(view)。

類型轉(zhuǎn)換:

,Struts1ActionForm屬性通常都是String類型。Struts1使用Commons-Beanutils進(jìn)行類型

轉(zhuǎn)換。每個(gè)類一個(gè)轉(zhuǎn)換器,對每一個(gè)實(shí)例來說是不可配置的。

?Struts2使用OGNL進(jìn)行類型轉(zhuǎn)換。提供基本和常用對象的轉(zhuǎn)換器。

92.struts的工作原理可分為如下8步。

1.讀取配置(初始化ModuleConfig對象)

Struts框架總控制器(ActionServlet)是一個(gè)Servlet,在web.xml中被配置成一個(gè)自

動(dòng)啟動(dòng)的Servlel。讀取配置文件sl「uls-cor】ng.xml的配置信息,為不問的SUuls模塊

初始化相應(yīng)的ModuleConfig對象。

2.用戶請求

用戶提交表單或調(diào)用URL向WEB應(yīng)用程序服務(wù)器提交一個(gè)請求,請求的數(shù)據(jù)用HTTP協(xié)

議上傳給WEB服務(wù)器。

3.填充FormBean

(*.do請求)從ActionConfig中找出對應(yīng)該請求的Action子類,如有對應(yīng)的Action且

這個(gè)Action又個(gè)相應(yīng)的ActionForm,ActionForm被實(shí)例化并用HTTP請求的數(shù)據(jù)填

充其屬性,并保存在ServletContext中,這樣他們就可以被其它Action對象或JSP調(diào)用。

如果沒有對應(yīng)的Action,控制器則直接轉(zhuǎn)發(fā)給JSP或靜態(tài)頁面。

4.派發(fā)請求

控制器根據(jù)配置信息A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論