国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場文庫 > 面試技巧 >

javaweb面試題及答案

時(shí)間: 小龍 面試技巧

  javaweb開發(fā)人員面試前的準(zhǔn)備,會(huì)對(duì)面試有利,以下是javaweb面試題及答案例文,增加你的面試技巧,和小編一起來學(xué)習(xí)啦。

  javaweb面試題及答案(一)

  一、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可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。在struts框架中,JSP位于MVC設(shè)計(jì)模式的視圖層,而Servlet位于控制層.

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

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

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

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

  JSTL(JSP Standard Tag Library ,JSP標(biāo)準(zhǔn)標(biāo)簽庫)是一個(gè)不斷完善的開放源代碼的JSP標(biāo)簽庫,由四個(gè)定制標(biāo)記庫(core、format、xml 和 sql)和一對(duì)通用標(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)一步集成。相信不久就會(huì)有支持JSTL的IDE開發(fā)工具出現(xiàn)。

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

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

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

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

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

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

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

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

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

  五、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ā)時(shí)間。

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

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

  e、支持L18N

  javaweb面試題及答案(二)

  一、為什么要用struts?

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

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

  二、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)簽

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

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

  struts2的action類可以實(shí)現(xiàn)一個(gè)action接口,也可以實(shí)現(xiàn)其他接口。

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

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

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

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

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

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

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

  Struts2可以使用JSTL,但是也支持一個(gè)更強(qiáng)大和靈活的表達(dá)式語言--"Object Graph Notation Language" (OGNL).

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

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

  7、Struts 1 ActionForm 屬性通常都是String類型。Struts1使用Commons-Beanutils進(jìn)行類型轉(zhuǎn)換。

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

  8、Struts 1支持在ActionForm的validate方法中手動(dòng)校驗(yàn),或者通過Commons Validator的擴(kuò)展來校驗(yàn)。

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

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

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

  javaweb面試題及答案(三)

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

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

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

  3、攔截器只能對(duì)action請求起作用,而過濾器則可以對(duì)幾乎所有的請求起作用

  4、攔截器可以訪問action上下文、值棧里的對(duì)象,而過濾器不能

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

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

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

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

  工作原理:

  1.讀取并解析配置文件2.讀取并解析映射信息,創(chuàng)建SessionFactory 3.打開Sesssion 4.創(chuàng)建事務(wù)Transation 5.持久化操作6.提交事務(wù)7.關(guān)閉Session 8.關(guān)閉SesstionFactory

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

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

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

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

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

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

  Configuration、SessionFactory

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

  Query q=CreateQuery(“from Customer where customerName=:customerName”)

  beginTransaction、close、Transaction、Commit()

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

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

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

49835