javaWeb面試題含答案_第1頁
javaWeb面試題含答案_第2頁
javaWeb面試題含答案_第3頁
javaWeb面試題含答案_第4頁
javaWeb面試題含答案_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

javaWeb面試題含答案資料僅供參考1、jsp和servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍??

JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,而且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML能夠組合成一個擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。在struts框架中,JSP位于MVC設(shè)計(jì)模式的視圖層,而Servlet位于控制層.

2、cookie和session的作用、區(qū)別、應(yīng)用范圍,session的工作原理???

Cookie:主要用在保存客戶端,其值在客戶端與服務(wù)端之間傳送,不安全,存儲的數(shù)據(jù)量有限。

Session:保存在服務(wù)端,每一個session在服務(wù)端有一個sessionID作一個標(biāo)識。存儲的數(shù)據(jù)量大,安全性高。占用服務(wù)端的內(nèi)存資源。

3、jstl是什么?優(yōu)點(diǎn)有哪些??

JSTL(JSPStandardTagLibrary,JSP標(biāo)準(zhǔn)標(biāo)簽庫)是一個不斷完善的開放源代碼的JSP標(biāo)簽庫,由四個定制標(biāo)記庫(core、format、xml和sql)和一對通用標(biāo)記庫驗(yàn)證器(ScriptFreeTLV和PermittedTaglibsTLV)組成。優(yōu)點(diǎn)有:

1、在應(yīng)用程序服務(wù)器之間提供了一致的接口,最大程序地提高了WEB應(yīng)用在各應(yīng)用服務(wù)器之間的移植。

2、簡化了JSP和WEB應(yīng)用程序的開發(fā)。

3、以一種統(tǒng)一的方式減少了JSP中的scriptlet代碼數(shù)量,能夠達(dá)到?jīng)]有任何scriptlet代碼的程序。在我們公司的項(xiàng)目中是不允許有任何的scriptlet代碼出現(xiàn)在JSP中。

4、允許JSP設(shè)計(jì)工具與WEB應(yīng)用程序開發(fā)的進(jìn)一步集成。相信不久就會有支持JSTL的IDE開發(fā)工具出現(xiàn)。

4、j2ee的優(yōu)越性主要表現(xiàn)在哪些方面?MVC模式

a、J2EE基于JAVA技術(shù),與平臺無關(guān)

b、J2EE擁有開放標(biāo)準(zhǔn),許多大型公司實(shí)現(xiàn)了對該規(guī)范支持的應(yīng)用服務(wù)器。如BEA,IBM,ORACLE等。

c、J2EE提供相當(dāng)專業(yè)的通用軟件服務(wù)。

d、J2EE提供了一個優(yōu)秀的企業(yè)級應(yīng)用程序框架,對快速高質(zhì)量的開發(fā)系統(tǒng)打下了基礎(chǔ)。

Model模型:應(yīng)用程序的主體部分,用于表示業(yè)務(wù)邏輯。

View視圖:應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。

Controller控制器:用于根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示,更新Model對象狀態(tài)。

MVC模式的出現(xiàn)不但實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時還提夠了應(yīng)用系統(tǒng)的可維護(hù)、可擴(kuò)展性、可移植性、和組建的可復(fù)用性。

5、Struts的優(yōu)點(diǎn)

a、實(shí)現(xiàn)MVC模式,結(jié)構(gòu)清晰,使開發(fā)者只需關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn)。

b、有豐富的tag能夠用,能大大提夠開發(fā)效率,縮短開發(fā)時間。

c、頁面導(dǎo)航。經(jīng)過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有很大的好處

d、提供Exception處理機(jī)制

e、支持L18N

6、為什么要用struts?

JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強(qiáng)大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂,因此在此之上,我們需要一個規(guī)則、一個把這些技術(shù)組織起來的規(guī)則,這就是框架,Struts便應(yīng)運(yùn)而生。

基于Struts開發(fā)的應(yīng)用由3類組件構(gòu)成:控制器組件、模型組件、視圖組件

7、Sturt1的核心類、核心標(biāo)簽庫?

ActionServlet控制器、ActionMapping狀態(tài)改變事件、Action控制器的一部分、ActionForward用戶指向、ActionForm狀態(tài)改變的數(shù)據(jù)

Html標(biāo)簽、bean標(biāo)簽、logic標(biāo)簽、tiles標(biāo)簽、nested標(biāo)簽

8、struts1與sturts2的區(qū)別(struts2是struts1和webwork的結(jié)合體)

1、struts1要求Action類繼承一個抽象基類,而不是接口。

struts2的action類能夠?qū)崿F(xiàn)一個action接口,也能夠?qū)崿F(xiàn)其它接口。

2、sturts1action是單例模式,線程是安全的。

struts2action線程是不安全的,action為每一個請求都生成了一個實(shí)例。

3、sturts1過去依賴serletAPI,不容易測試。

struts2不依賴于容器,允許Action脫離容器單獨(dú)被測試。

4、Struts1使用ActionForm對象捕獲輸入。所有的ActionForm必須繼承一個基類。

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

5、Struts1整合了JSTL,因此使用JSTLEL。這種EL有基本對象圖遍歷,可是對集合和索引屬性的支持很弱。

Struts2能夠使用JSTL,可是也支持一個更強(qiáng)大和靈活的表示式語言--"ObjectGraphNotationLanguage"(OGNL).

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

Struts2使用"ValueStack"技術(shù),使taglib能夠訪問值而不需要把你的頁面(view)和對象綁定起來。

7、Struts1ActionForm屬性一般都是String類型。Struts1使用Commons-Beanutils進(jìn)行類型轉(zhuǎn)換。

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

8、Struts1支持在ActionForm的validate方法中手動校驗(yàn),或者經(jīng)過CommonsValidator的擴(kuò)展來校驗(yàn)。

Struts2支持經(jīng)過validate方法和XWork校驗(yàn)框架來進(jìn)行校驗(yàn)。

9、Struts1支持每一個模塊有單獨(dú)的RequestProcessors(生命周期),可是模塊中的所有Action必須共享相同的生命周期。

Struts2支持經(jīng)過攔截器堆棧(InterceptorStacks)為每一個Action創(chuàng)立不同的生命周期。堆棧能夠根據(jù)需要和不同的Action一起使用。

9、過濾器和攔截器的區(qū)別

1、攔截器是基于java的反射機(jī)制的,而過濾器是基于函數(shù)回調(diào)

2、過濾器依賴于servlet容器,而攔截器不依賴于servlet容器

3、攔截器只能對action請求起作用,而過濾器則能夠?qū)缀跛械恼埱笃鹱饔?/p>

4、攔截器能夠訪問action上下文、值棧里的對象,而過濾器不能

5、在action的生命周期中,攔截器能夠多次被調(diào)用,而過濾器只在容器初始化時調(diào)用一次

攔截器:是在面向切面編程的就是在你的service或者一個方法,前調(diào)用一個方法,或者在方法后調(diào)用一個方法比如動態(tài)代理就是攔截器的簡單實(shí)現(xiàn),在你調(diào)用方法前打印出字符串(或者做其它業(yè)務(wù)邏輯的操作),也能夠在你調(diào)用方法后打印出字符串,甚至在你拋出異常的時候做業(yè)務(wù)邏輯的操作。

過濾器:是在javaweb中,你傳入的request,response提前過濾掉一些信息,或者提前設(shè)置一些參數(shù),然后再傳入servlet或者struts的action進(jìn)行業(yè)務(wù)邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者struts的action前統(tǒng)一設(shè)置字符集,或者去除掉一些非法字符.

10、Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得java程序員能夠隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。

工作原理:

1.讀取并解析配置文件2.讀取并解析映射信息,創(chuàng)立SessionFactory3.打開Sesssion4.創(chuàng)立事務(wù)Transation5.持久化操作6.提交事務(wù)7.關(guān)閉Session8.關(guān)閉SesstionFactory

優(yōu)點(diǎn)有:

1.對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。

2.Hibernate是一個基于JDBC的主流持久化框架,是一個優(yōu)秀的ORM實(shí)現(xiàn)。她很大程度的簡化DAO層的編碼工作

3、Hibernate使用Java反射機(jī)制而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。

4、Hibernate的性能好,映射的靈活性比較出眾。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。

11、hibernate的核心類是什么??重要方法是什么??

Configuration、SessionFactory

Session如下方法Save、load、Update、Delete

Queryq=CreateQuery(“fromCustomerwherecustomerName=:customerName”)

beginTransaction、close、Transaction、Commit()

12、session.load()和session.get()的區(qū)別

Session.load/get方法均能夠根據(jù)指定的實(shí)體類和id從數(shù)據(jù)庫讀取記錄,并返回與之對應(yīng)的實(shí)體對象。其區(qū)別在于:

如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。

13、hql和sql的區(qū)別【能夠這樣說,hibernate是面向?qū)ο笳Z言與關(guān)系型數(shù)據(jù)庫之間的橋梁,她使得程序員能夠不用關(guān)心底層數(shù)據(jù)庫連接的代碼,而能夠?qū)P膶憳I(yè)務(wù)邏輯?!?/p>

sql是面向數(shù)據(jù)庫表查詢

hql是面向?qū)ο蟛樵兊?其form子句返回的是對象的實(shí)例。

14、hibernate與jdbc之間的區(qū)別【能夠這樣說,hibernate是面向?qū)ο笳Z言與關(guān)系型數(shù)據(jù)庫之間的橋梁,她使得程序員能夠不用關(guān)心底層數(shù)據(jù)庫連接的代碼,而能夠?qū)P膶憳I(yè)務(wù)邏輯?!?/p>

Hibernate作為一個O/RMapping,比JDBC具備的優(yōu)勢有:

1.編程思想上,更加符合人的邏輯思維習(xí)慣,面向?qū)ο蟊让嫦蜻^程更加容易理解,測試和維護(hù)

2.開發(fā)維護(hù)速度上,Hibernate顯著的快,代碼量顯著小

3.經(jīng)過Annotation進(jìn)行數(shù)據(jù)庫的字段加密

4.對Sql不熟的菜鳥來說能夠自動調(diào)優(yōu)

5.結(jié)合Spring,經(jīng)過聲明式事務(wù)能夠省略事務(wù)的控制,事務(wù)以橫切面形式出現(xiàn)

Jdbc比Hibernate具備的優(yōu)勢有:

1.大數(shù)據(jù)量訪問時,Jdbc的效率顯著快

2.直接操作數(shù)據(jù)庫比較靈活

15、Hibernate是如何延遲加載?

當(dāng)Hibernate在查詢數(shù)據(jù)的時候,數(shù)據(jù)并沒有存在與內(nèi)存中,當(dāng)程序真正對數(shù)據(jù)的操作時,對象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,她節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。

16、說下Hibernate的緩存機(jī)制

1.內(nèi)部緩存存在Hibernate中又叫一級緩存,屬于應(yīng)用事物級緩存

2.二級緩存:

a)應(yīng)用及緩存

b)分布式緩存

c)第三方緩存的實(shí)現(xiàn)

17、spring工作機(jī)制及為什么要用?【spring是一個輕量的控制反轉(zhuǎn)和面向切面的容器框架】

1.springmvc把所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其它模塊負(fù)責(zé)對請求進(jìn)行真正的處理工作。

2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.

3.DispatcherServlet把請求提交到目標(biāo)Controller

4.Controller進(jìn)行業(yè)務(wù)邏輯處理后,會返回一個ModelAndView

5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

6.視圖對象負(fù)責(zé)渲染返回給客戶端。

IoC就是由容器來控制業(yè)務(wù)對象之間的依賴關(guān)系??刂品崔D(zhuǎn)的本質(zhì),是控制權(quán)由應(yīng)用代碼轉(zhuǎn)到了外部容器,控制器的轉(zhuǎn)移既是所謂的反轉(zhuǎn)??刂茩?quán)的轉(zhuǎn)移帶來的好

溫馨提示

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

評論

0/150

提交評論