久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>java面試通關要點匯總(一篇文章帶你攻克面試難題)

java面試通關要點匯總(一篇文章帶你攻克面試難題)

發布時間:2024-01-24閱讀(18)

導讀第一部分:servlet/jsp快速入門1.請列舉至少6種javaEE技術,并簡述其作用。解析:javaEE是一系列的技術,主要包括13種。對于開發人員來說....

java面試通關要點匯總(一篇文章帶你攻克面試難題)(1)

第一部分:servlet/jsp快速入門

1. 請列舉至少6種javaEE技術,并簡述其作用。

解析:

javaEE是一系列的技術,主要包括13種。對于開發人員來說,了解幾種主要的技術是非常必要的,例如JDBC、JSP、Servlet、XML、JNDI、JMS、JTA等。

參考答案:

(1) JDBC(Java Database Connectivity):用來訪問數據庫的API。

(2) JavaServlet :是一種小型的Java程序,擴展了web服務器的功能。

(3) JSP(Java Server Pages):JSP頁面由HTM代碼和嵌入其中的Java代碼組成,用來實現動態視圖。

(4) JNDI(Java Name and Directory Interface): JNDI API被用于訪問名字和目錄服務。

(5) EJB(Enterprise JavaBean):實現業務邏輯的組件,可以構成分布式系統。

(6) RMI(Remote Method Invoke):調用遠程對象方法。

(7) Java IDL/CORBA:將Java和CORBA集成在一起。

(8) XML(Extensible Markup Language):可以用它來定義其他標記語言的語言。

(9) JMS(Java Message Service):用于和消息中間件相互通信的API。

(10) JTA(Java Transaction Achitecture):一種標準的API,可以訪問各種事務管理器。

(11) JTS(Java Transaction Service):是CORBA OTS事務監控的基本實現。

(12) JavaMail:用于存取郵件服務的API。

(13) JAF(JavaBeans Activation Framework):JavaMail利用JAF來處理MIME編碼的郵件附件。

2. 在web.xml文件中配置Servlet時,主要配置哪些信息?

解析: 使用IDE開發Servlet時,配置信息可以通過可視化方式定義。然而對于web應用開發員來說,了解Servlet的配置非常必要,能夠在必要的時候手動進行修改。

參考答案: 配置Servlet時,主要配置<servlet>以及< servlet -mapping>,如下所示:

<servlet>

<servlet-name>IndexServlet</servlet-name>

<servlet-class>com.oracle.servlet.IndexServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>IndexServlet</servlet-name>

<url-pattern>/IndexServlet</url-pattern>

</servlet-mapping>

其中<servlet-class>是Servlet源文件的名字,<servlet-name>是自定義的名字,往往使用類名。<url-pattern>是其中非常重要的信息,用來配置訪問Servlet的邏輯路徑。必須以/開頭。

<servlet-class>com.oracle.FirstServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>FristServlet</servlet-name>

<url-pattern>/frist<url-pattern>

<servlet-mapping>

其中,<servlet-class>是Servlet源文件的名字,<servlet-name>是自定義的名字,往往使用類名。<url-pattern>是非常重要的信息,用來配置訪問Servlet的邏輯路徑,必須以/開頭。

3. 如果通過一個鏈接訪問Servlet,默認調用Servlet中的哪個方法提供服務?

解析 度與不同的HTTP請求方法Servlet中都定于了對應的doXXXX方法接受請求。一超級鏈接的方式提交請求,默認的GET方式,所以將調用Servlet中的doGet方法。程序員應該熟悉每種用戶請求對應的HTTP方式。

4. 如果一個表單<form>沒有顯示指定method屬性值,那么默認使用什么方法提交請求?

解析 表單提交時Web應用中常見的請求方式,一般情況下,建議使用POST方式提交請求,因為這種方式請求參數在請求體重傳遞,不會顯示在URL中。但是,如果在HTML的<form>標記中沒有使用method屬性指定提交方式,默認是GET方式。

參考答案 默認使用GET方式。

5. 請求接口中的哪個方法可以返回請求參數的值?哪個方法可以把請求參數的多個值同時返回?

解析 Web應用中復雜重要的的功能往往通過表單提交實現,用戶利用表單可以輸入很多信息,這些信息被稱為請求參數。在Web應用開發中,獲得請求參數幾乎是使用最多的功能,程序員應該熟練掌握獲得請求參數有關的所有方法。

參考答案 請求接口中的getParameter 方法可以返回某一個請求參數的值,getParaneterValues方法可以把摸個請求參數的多個值同時返回,封裝到一個數組中,例如復框的多個值。

6.響應接口中的哪個方法可以設置內容類型?用簡單代碼演示。

解析 響應可以封裝服務器端返回到客戶端的數據。而這些數據的格式和編碼都需要使用響應中的方法進行設置。如果設置錯誤,客戶端瀏覽器將無法顯示。

參考答案 響應中的soracleontentType方法可以設置內容類型,如下所示:

//設置響應的內容類型

Respose.soracleontentType(“text/htmllcharset=gb2312”);

上述代碼中設置響應的內容類型是text或者html,編碼格式是gb2312.

7.簡述JSP的運行過程

解析 很多初級開發員對JSP的理解比較膚淺,不熟悉JSP的運行過程,JSP出錯時很難排錯,開發員必須熟悉JSP的運行過程,這樣才能編寫出優良的JSP并能順利調試。

參考答案

(1) 容器將JSP翻譯成符合Servlet規范的類。

(2) 容器編譯JSP生成的類。

(3) 容器初始化JSP實例;

(4) 將請求和相應對象傳遞給JSP實例的服務方法,提供服務。

8.JSP中的<% %>和<% =%>有什么區別?

解析 JSP從表面上看就是HTML代碼中混合了Java代碼,而為了區別Java代碼和HTML代碼,規范中定義了一些符號,即腳本元素。初級開發員應該從熟悉這些腳本元素開始,逐步熟悉JSP的開發。

參考答案 <% %>稱為腳本片段,可以包含任何符合語法的Java代碼,可以同時包含多行代碼。而<% =%>稱為表達式,=號后面是一個表達式,這個表達式的值將被輸出到瀏覽器中,表達式后面不用使用分號結束,而且每個<% =%>只能包含一個表達式。

9.JDBC編程中主要有哪幾種語句對象?有什么區別?

解析 JDBC主要用來操作數據庫,操作數據庫本質上是通過執行SQL語句完成。所以,JDBC編程中,能夠用來執行SQL語句的語句對象非常重要,每種語句對象都存在一些區別,開發員應該熟悉并掌握。

參考答案 JDBC中主要有以下3種語句對象:

(1) Statement:Statement是所有語句對象的父接口,定義了語句對象的規范。

(2) PreparedStatement:預編譯的語句對象,將待執行的語句進行了預編譯,可以在執行時動態指定SQL語句中的參數。

(3) CallableStatement:可以用來調用數據庫的存儲過程。

10、簡述使用JDBC操作數據庫的主要步驟。

解析 不論使用什么數據庫軟件,JDBC操作數據庫的步驟都基本相同。開發員一定需要注意的是,JDBC的連接對象、語句對象、結果集等都是高開銷對象,使用完畢一定要在finally語句中進行關閉處理,否則將降低應用的性能。

參考答案

(1) 加載驅動類;

(2) 獲得連接對象;

(3) 獲得語句對象;

(4) 執行SQL語句,如果是查詢語句,需要處理結果集;

(5) 關閉結果集。語句對象。數據庫連接對象。

11.說明MVC模式的含義,并用圖表示web應用中MVC模式中每部分之間的關系

解析 對于web開發員來說,正確理解MVC模式非常關鍵。目前,大多數web應用都是基于MVC模式進行架構,也有很多MVC框架能夠幫助開發員快速搭建MVC應用。值得注意的是,使用JSP,Servlet,JavaBean可以構建MVC模式的應用,但是MVC是一種架構思想,并不僅局限于JSP,Servlet,JavaBean這個范圍內,可以使用很多其他技術實現。

參考答案 MVC本來應用于桌面程序中,M是指數據模型 , V是指用戶界面 , C則是控制器,至今已被廣泛使用。使用MVC的目的是將M和V實現代碼分離,從而使同一個程序可以使用不同的表現形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。MVC模式是近些年被JavaEE平臺廣泛使用的設計模式。Web應用中的MVC模式與桌面程序中的MVC模式有所不同。由于web應用大多基于請求響應模式,因此往往做不到“一旦M改變,V應該同步更新”。MVC每部分之間的關系如下

java面試通關要點匯總(一篇文章帶你攻克面試難題)(2)

第二部分 詳解Servlet組件開發

1 . 請說明Servlet的聲明周期

解析 Servlet作為服務器端的組件,需要在容器中才能運行,容器管理Servlet的生命周期。對于web開發員來說,了解Servlet的聲明周期才能更好地進行Servlet編程。

參考答案

階段一:初始化

客戶端第一次訪問Servlet,或者容器加載應用時(配置<load-on-startup>),容器調用Servlet類的構造方法,實例化一個Servlet對象,該對象存在于服務器端內存中,容器將啟動多線程并發訪問該對象。實例化結束后,將對Servlet實例進行初始化,先調用init(Servloracleonfig)方法,在調用init()方法

階段二:提供服務

Servlet初始化成功后,容器調用Servlet接口中定義的service(Servletrequest req,ServletResponse res)方法。Service將請求和響應對象轉換成HttpServletRequest req,HttpServletResponse resp)方法。HttpServlet中的service方法,將請求根據請求方式轉發給對應的doXXX方法,如doGet、doPost

階段三 銷毀

Servlet提供服務結束,或者一段時間后,容器將銷毀Servlet實例。銷毀Servlet實例前,容器先調用Servlet接口中定義的destroy方法,允許完成一些自定義的操作。

2. 什么是Servlet的初始化參數?如何配置?如何在程序中獲得?

解析 如果摸個Servlet需要一些參數,可以再web.xml中今夕配置,而不必要硬編碼到源代碼中,這樣可以方便地進行修改。值得注意的是,Servlet的初始化參數只能在當前的Servlet中使用,其他Servlet中無法使用。

參考答案 Servlet的初始化參數指的是初始化Servlet實例時的參數,可以再web.xml中盡享配置,如下所示:

<servlet>

<servlet-name>TestServlet</servlet-name>

<servlet-class>com.oracleTestServlet</servlet-class>

<init-param>

<param-name>levEL</param-name>

<param-value>2.1</param-value>

</init-param>

</servlet>

上述配置中,使用<init-param>為TestServlet配置了一個名字為level的初始化參數,值為2.1.可以使用多個<init-param>元素配置多個初始化參數。在TestServlet中,可以直接調用getInitParameter(“level”)方法返回該參數的值。

3. 請列出請求接口中至少三個獲得請求頭的方法。

解析 當用戶向服務器端請求時,HTTP請求頭的信息也隨之被發送到服務器。請求接口中定義了獲得請求頭的方法,實際應用中常常需要獲得某些請求頭的值,根據請求頭的值判斷客戶端的情況進行編程。開飯員應該熟悉各種請求頭的含義,以及獲得請求頭的方法。

參考答案 getHeader方法可以根據請求頭名字獲得請求頭值;getIntHeader方法用來返回整型請求頭的值;getDateHeader方法用來返回日期類型請求頭的值。

4.響應接口中addHeader方法和setHeader方法有什么區別?

解析 響應封裝了服務器端發送給客戶端的信息,響應接口中定義了操作響應頭的方法,有些方法容易混淆,開發員應該辨別清楚。

參考答案 addHeader方法用來向響應中添加一個頭,如果蓋頭的名字已經存在,name允許一個頭包含多個值:setHeader方法向響應中添加一個頭信息,如果頭寸在,則覆蓋已有的值。

5. Servlet跳轉到JSP常常有兩種方法:一種稱為響應重定向,一種稱為請求轉發。請用代碼展示兩種方法,并說明其區別。

解析 Servlet作為MVC中的控制器,主要的作用就是接受客戶端請求,獲得請求信息后調用業務邏輯,然后根據業務邏輯的處理結果跳轉到不同的視圖顯示給用戶。開發員必須掌握常用的兩種跳轉方法,即響應重定向和請求轉發。實際工作中常用的是請求轉發,很多MVC框架默認也是使用請求轉發.

參考答案

響應重定向response.sendRedirect(“index.jsp”);

請求轉發:request.getRequestDispantcher(“index.jsp”).forward(request,respinse);

響應重定向相當于讓客戶端向重定向的資源重新發送一個請求。當前請求中的信息無法傳遞到下一個資源。而請求轉發顯得剛玉吧當前的請求轉發到下一個資源。當前請求中的信息將可以轉遞到下一個資源。

6.請求接口中的提供了處理屬性的方法,請列舉每個方法并說明其作用。

解析 控制器調用業務邏輯后,往往需要把一些處理的結果返回到視圖上進行顯示。這種時候,屬性的概念就至關重要。請求屬性是最常用的一種屬性,是在請求范圍內有效的屬性。開發員一定要正確理解每種范圍的屬性并能夠正確使用。

參考答案 請求接口中有三個和屬性有關的方法,分別是:setAttribute(String,Object),可以將一個對象設置一個名字,存儲到請求中:getAttribute(String),可以根據屬性的名字返回屬性值:removeAttribute(String),可以根據屬性的名字刪除屬性。

7.cookie有什么作用?如何使用Servlet 的API返回請求中的cookie?如何將cookie保存到客戶端?

解析 cookie是保存在客戶端的小文本,合理地使用cookie能夠增強用戶體驗。然而,開發員使用cookie時,一定不要把涉及用戶隱私的內容保存到cookie中,如銀行賬號的密碼等。另外,cookie可以被用戶人為禁止或刪除,這也是使用cookie時需要考慮的問題。

參考答案 cookie用來將一些信息保存到客戶端,已被用戶下次訪問同一應用時,能夠自動將這些信息發送到服務器端。服務器端通過使用cookie編程,能夠提高用戶體驗。請求接口中提供了goracleookie方法返回所有的cookie,響應接口提供了addCookie方法能夠將cookie對象返回到客戶端。

8.如何獲得會話對象?請用簡單代碼展示。

解析 web應用中,常常需要使用會話對象。會話是指客戶端對服務器端一次連續的訪問過程。開發人員應該熟悉會話相關的操作。

參考答案 可以通過請求對象獲得會話對象,如request.getSession()。如果當前存在會話,直接返回使用:如果不存在,則創建一個新的會話返回。還有一個重載的getSession方法,具有一個boolean類型的參數,其中request.getSession(true)和request.get

Session()完全相同,而request.getSession(false)意思是如果存在會話對象就返回使用,如果不存在則返回null。

9.有哪幾種方式可以設置會話有效時間?

解析 會話對象都被存儲在容器中,如果很長時間不使用,就應該被銷毀,以保證內存的有效使用。容器總是會為會話設置默認的有效時間,大多數是30分鐘,也可以自己定義會話的有效時間。

參考答案 有兩種方法可以設置會話的有效時間,一種是在web.xml中配置,如下所示:

<session-config>

<session-timeout>40</session-timeout>

</session-config>

使用這種方式設置的有效時間,是對當前應用中所有會話都有效,單位是分鐘。

還有一種方式是使用HttpSession中的setMaxInterval(int)方法,這個方法能夠設定最大不活動時間,超過這個時間會話沒有被訪問,即被容器銷毀。這個方法只能夠控制調用該方法的會話對象,不會對所有會話對象生效。

10. 什么是URL重寫?能解決什么問題?

解析 大多數容器實現會話,都是基于cookie機制實現的。然而,cookie可能被用戶人為地設置失效,這種情況下,會話頁將無效。為了能夠在cookie失效時依然使會話有效,可以使用URL重寫策略。如果使用某些MVC框架編程,如Struts,這些問題都已經在框架層面得到了解決。

參考答案 URL重寫就是使用響應接口中的encodeURL(path)方法,把指定的path重新編碼,將名字是JSESSIONID的cookie的值強制加到path對應的URL中,傳遞到服務器端,這樣就能夠保證即使cookie被阻止,服務器端永遠能得到會話對象的ID值,使得會話有效。

11. 會話接口中提供了處理會話屬性的方法,請列舉每個方法并說明其作用。

解析 如果某些對象需要在會話范圍內有效,那么就可以考慮使用會話范圍的屬性。保存在會話范圍內的屬性,在當前會話中一直有效。然而,由于會話的生命中期較長,所以屬性也將隨著會話一直存在于內存中。只有當必須使用會話屬性時再考慮使用,能用請求屬性解決的場合就使用請求屬性,開發員必須能夠正確選擇不同范圍屬性進行使用。

參考答案 會話接口中有三個和屬性有關的方法,分別是:setAttribute(String,Object),可以將一個對象設置一個名字,存儲在會話中;getAttritute(String),可以根據屬性的名字返回屬性值;removeAttribute(String),可以根據屬性的名字刪除屬性。

12. 什么是上下文對象?如何獲得上下文對象?

解析 上下文是一個全局的概念,每個應用都有一個唯一的上下文對象。上下文接口中定義了一系列的方法,開發員應該熟悉這個接口的常用方法。

參考答案 當容器啟動時,會加載容器中的每一個應用,并且針對每一個應用創建一個對象,稱為上下文對象。每個應用都只有一個唯一的上下文對象,Servlet API 中提供了Servloracleontext 接口來表示上下文對象。要在Servlet中獲得上下文對象非常簡單,直接使用getServloracleontext()方法就可以返回當前的上下文對象,在JSP中可以直接使用application內置對象使用上下文。

13. 如何配置上下文參數?在程序中如何獲得上下文參數?

解析 如果在應用中的很多地方,都需要使用某一個參數,那么就可以配置一個上下文參數。上下文參數與Servlet初始化參數不同的是,上下文參數能夠在應用所有資源里使用,而Servlet初始化參數在當前Servlet中使用。

參考答案 在web.xml中可以使用<context-param>配置上下文參數,如下所示:

<context-param>

<param-name>path</param-name>

<param-value>/WEB-INF/props</param-value>

</context-param>

要獲得上下文參數,可以使用Servloracleontext接口中的getInitParameter方法返回。

14、上下文接口中提供了處理屬性的方法,請列舉每個方法并說明其作用?

解析:除了請求屬性、會話屬性外,還可以使用上下文屬性。如果某個對象在上下文范圍內使用,就可以考慮使用上下文屬性存儲。上下文的生命周期很長,應用加載時初始化,直到應用重新加載才被銷毀,所以只有必須使用上下文屬性時方可使用,否則應該盡量使用請求屬性。

參考答案:上下文接口中有三個和屬性有關的方法,分別是setAttribute(String ,Object),可以將一個對象設置一個名字,存儲到上下文范圍中:getAttribute(String),可以根據屬性的名字返回屬性值:removeAttribute(String),可以根據屬性的名字刪除屬性。

15、說明請求屬性、會話屬性、上下文屬性的區別?

解析:屬性在Web應用開發中占有舉足輕重的地位,是用來在組件之間傳遞對象的主要方式。主要有三個對象可以儲存屬性,即請求、會話、上下文。由于請求生命周期最短,所以應該盡量使用請求屬性,而只有在必須用會話屬性或者必須用上下文屬性時菜考慮使用這兩種屬性。

參考答案:請求屬性是請求范圍內的屬性,除了請求轉發外,只在當前的請求中有效:會話屬性是會話范圍內的屬性,只要會話沒有失效,就一直隨著當前的會話所在:上下文屬性是上下文范圍的屬性,只要容器沒有重新加載應用,就一直隨著上下文對象存在。應該盡量使用請求屬性實現功能,只有在必須用會話屬性或者必須用上下文屬性時才考慮使用這兩種屬性。

16、請說明ServloracleontextEvent什么場景下被觸發,以及如何處理?

解析:事件處理在很多時候非常有效,開發人員應該熟悉Servlet中得常用時間類別,并熟悉每種事件觸發的條件。

參考答案:當上下文對象被初始化或者被銷毀時,將觸發ServloracleontextEvent,要處理該事件,可以自定義事件處理類實現ServloracleontextListener接口;然后覆蓋該接口中的方法,實現處理邏輯。

17、請說明HttpSessionEvent什么場景下會被觸發,以及如何處理?

解析:會話事件在很多場合可以使用,開發人員應該熟悉會話事件的觸發條件以及處理方法等。

參考答案:當會話對象有變化的時候,將觸發HttpSessionEvent事件發生,例如會話被創建、會話被銷毀、會話被活化、要處理該事件,有兩個接口可以監聽,分別是HttpSessionListener和HttpSessionActivationListener。其中前者監聽會話創建和銷毀的情況,后者監聽會話活化和鈍化的情況。

18、如何在web.xml中配置監聽器,使監聽器生效?

解析 監聽器必須在web.xml中配置才能生效。

參考答案 在web.xml中,可以使用<listenner>配置監聽器,如下所示:

<listener>

<listener-class>com.oracle.listener.CounterListener</listener-class>

</listener>

19、簡述監聽器的開發配置步驟。

解析 每種監聽器的開發和配置步驟都非常相似,開發員應該做到熟練掌握。

參考答案

(1)根據需求分析需要使用哪種監聽器。

(2)創建類實現監聽器接口,并實現接口中必要的方法,實現監聽功能。

(3)在web.xml中使用<listener>配置監聽器。

20、過濾器有什么作用 ?

解析 過濾器是web應用中非常重要的概念,甚至在Strust2框架中也作為核心控制器使用。

參考答案 在web應用中,往往需要一些通用的處理和控制,如果把這些通用的處理編寫在每一個需要的資源文件中,代碼就很冗余,且不好管理。只要需要修改,就得修改所有文件中的相關代碼,造成維護困難。過濾器就是用來執行這些通用處理的程序,往往可以用來實現圖像轉換、數據壓縮、登錄驗證、權限控制等。

21、Filter接口中定義了哪幾個方法?分別有什么作用?

解析 Filter接口是所有過濾器都必須實現的接口,了解這個接口中的方法對開發員勝任過濾器開發非常重要。

參考答案 Filter接口中有以下三個方法:

(1)init(FilterConfig filterConfig):該方法是對filter對象進行初始化的方法,僅在容器初始化filter對象結束后被調用一次。

(2)doFilter(ServletRequest request,ServletResponse response,FilterChain chain):該方法是filter進行過濾操作的方法,是最重要的方法。過濾器實現類必須實現該方法。方法體中可以對request和response進行預處理。其中FilterChain可以將處理后的request和response對象傳遞到過濾鏈上的下一個資源。

(3)destroy():該方法在容器銷毀過濾器對象前被調用。

22、簡述過濾器的開發配置步驟

解析 開發員應該熟練掌握過濾器的開發配置步驟。

參考答案

(1)創建類實現Filter接口。

(2)實現Filter接口中的方法,重點實現doFilter方法對請求和響應進行過濾。

(3)在web.xml中配置過濾器,使用<filter>配置過濾器的類和名字,使用<filter-mapping>配置過濾器需要過濾的資源路徑。

23. 過濾器的配置中,<dispatcher>元素是什么含義?有幾個可選值?

解析:<dispatcher>元素師Servlet2.4以后新增的配置能夠用來指定轉發方式

參考答案: <dispatcher>可以配置能夠被過濾的URL的請求方式,有以下四個值可以使用;

(1) 請求方式,是一種默認的方式。即不配置disoatcher選項時,默認過濾REQUEST方式請求的URL,包括在地址欄輸入URL,表單提交,超級鏈接,響應重定向,但是如果指定了其他dispatcher值,REQUEST也必須顯式指定才能生效。

(2) FORWARD:轉發方式,表示可以過濾請求轉發方式訪問的URL.

(3) INCLUDE:包含方式,表示可以過濾動態包含的URL。

(4) ERROR:錯誤方式,表示可以過濾錯誤頁面

第三部分 詳解JSP組件開發

1.列舉至少5個JSPN內置對象,并說明其類型

解析 內置對象是JSP中非常重要的概念,是真正的Servlet API中的對象,不過是容器翻譯JSP時進行聲明創建的,所以在JSP中不需要聲明創建就可以直接使用。Web開發員起碼需要能夠熟練使用JSP中常用的內置對象。

參考答案

(1) request:HttpServletRequest

(2) response:HttpServletResponse

(3) session:HttpSession

(4) application:Servloracleontext

(5) pageCountext: pageCountext

(6) out:JspWriter

2.說明<%@include%>和<jsp:include/>的區別

解析 JSP中的指令和標準動作中都有一個名字為include的元素,都是包含的意思,二者具體含義卻不同,分別是靜態和動態包含,開發員應該熟悉二者區別,避免混淆。

參考答案 <%@include%>是指令,是靜態包含,在翻譯期將把被包含的資源翻譯到包含資源中,源代碼合二為一。而<jsp:include/>是動作,是動態包含,在運行期動態訪問被包含的資源,將生成的響應合二為一進行顯示。

3.列舉page指令中至少三種常用屬性,并說明其含義。

解析 page指令是JSP中最常用的指令之一,開發員應該熟悉page指令的常用屬性

參考答案

(1)import:用來導入需要使用的類。

(2)pageEncoding:指定JSP頁面的編碼。

(3)errorPage:指定錯誤頁面。

4、<jsp:forward>的含義是什么?

解析:請求轉發是經常使用的跳轉方式,在JSP中有更為簡單的方式進行請求轉發,就是使用標準動作forward。

參考答案 <jsp:forward>可以在JSP中實現請求轉發,類似在Servlet中使用RequestDispatcher的forward方法進行請求轉發

5、列舉與JavaBean相關的三個標準動作,并說明其含義。

解析:JavaBean可以實現MVC中的Model部分,然而它并不是一個真正的組件,而是有編程規范的Java類。為了能夠便捷使用

JavaBean,JSP規范定義了一系列標準動作。

參考答案:與JavaBean相關的有以下三個標準動作。

(1)<jsp:useBean>:用來獲得或者創建JavaBean實例。

(2)<jsp:setProperty>:用來為JavaBean的屬性賦值。

(3)<jsp:getProperty>:用來顯示JavaBean的屬性值。

6、什么是EL?EL的主要作用是什么?

解析:隨著JavaEE技術的發展,人們越來越希望JSP中的動態部分能夠更加簡練。可以使用<%=%>表達式在JSP中動態輸出內容,

然而總是過于繁瑣,因此出現了EL,可以很大程度簡化JSP中的表達式。然而,在實際使用中,EL總是和JSTL配合使用才能發

揮更大作用

參考答案:EL是Expression Language 的簡稱,即表達式語言,主要用來替代表達式<%=%>,使得JSP更為簡單。EL常常結合JSTL

一起使用,發揮更強大的作用。

7、列舉EL中4個與屬性相關的內置對象,并說明其含義。

解析:EL中定義了一系列的內置對象,其中與屬性有關的內置對象特別常用,開發員應該熟練掌握。

參考答案:

(1)pageScope:可以獲得PageContext范圍的屬性

(2)requestScope:獲得請求范圍的屬性

(3)sessionScope:獲得會話范圍的屬性

(4)applicationScope:獲得上下文范圍的屬性

8、如果web.xml中定義了一個名字為rate的上下文參數,在JSP中如何使用EL進行輸出?

解析 EL中定義了11個內置對象,分別能夠輸出不同的信息,其中initParam能夠用來輸出上下文參數

參考答案: ${initParam.rate}

9、EL中的內置對象pageContext,與其他內置對象有什么不同?

解析 EL的11個內置對象中,pageContext是一個非常特殊的內置對象。其他內置對象都只能輸出特定的信息,例如requestScope只能輸出請求范圍的屬性,并不是一個真正的請求對象。而pageContext是一個真正的PageContext類型對象,可以返回任意屬性。

參考答案 pageContext內置對象非常特殊,它是一個真正的PageContext類型的對象,只要PageContext中存在getXXX方法,就可以使用${pageContext.XXX}將getXXX方法的返回值進行輸出。而其他的內置對象都沒有這個特點,只能輸出特定的信息。

10、EL中的.與[]有什么區別?

解析 EL中的.和[]有類似的功能,特別容易混淆,開發員應該熟練掌握。

參考答案 EL中,使用.和[]都可以用來獲得數據,然而某些情況下只能使用[],而不能使用圓點,有以下三種情況只能使用[]:

(1) 通過數組或集合的索引返回值,只能使用[];

(2) 屬性值中包括-或者.等非字母或數字的字符,只能使用[];

(3) 屬性值不是常量,而是變量時,只能使用[]。

11、JSP中的自定義標記有什么作用?

解析 自定義標記是JSP1.2版本開始支持的功能,可以將JSP文件中需要使用的Java功能定義成標記,在JSP文件中多次調用。自定義標記能夠使得JSP文件結構簡練,可讀性強,可維護性也增強。

參考答案 使用自定義標記,能夠使得JSP文件結構簡練,減少冗余代碼,能夠在多個地方使用自定義標記,達到重復使用的目的,同時也使得動態功能更容易管理、維護。

12、簡述開發自定義標記的主要步驟。

解析 開發自定義標記有基本的步驟,開發員應該做到熟悉。

參考答案

(1) 根據需求設計需求開發的標記。

(2) 在tld文件中描述標記的基本信息,包括標記名稱、標記的屬性、標記體的特征以及標記的處理器類等。

(3) 根據tld描述的信息開發標記處理器類,實現標記的功能。

13、如何使用自定義標記?

解析 即使有的應用中不需要自行開發標記庫,然而開發員至少需要能夠熟練掌握自定義標記的使用方法。

參考答案

(1)將自定義標記相關的tld文件引入到工程中,可以存放到WEB-INF目錄下。

(2)將自定義標記相關的jar文件引入到工程中,可以存放到WEB-INFlib目錄下。

(3)在JSP文件中,使用taglib指令指定標記庫的uri,并指定使用該標記庫的前綴。

(4)在JSP中需要使用標記的地方,利用前綴引用標記,傳遞屬性即可使用。

14.簡述tld文件的主要作用。

解析 tld 文件在標記庫中有著舉足輕重的作用,開發人員至少要了解tld文件中的主要信息。

參考答案 tld文件是標記庫描述文件,主要描述了標記庫的信息。主要包括標記名稱、標記體的情況、標記中的屬性、標記對應的處理器類。另外還會指定一個唯一的uri值,在jsp中使用標記庫的時就通過這個uri進行引用。

15.JSTL是什么?有什么作用?

解析 目前標記庫有很多,除了JSTL外,還有很多第三方提供的標記庫,然而作用和使用步驟大同小異。開發員應該首先掌握標記庫的含義以及使用,這樣對其他標記庫也能很快的熟練使用。

參考答案 JSTL是原sun公司定義的一套標準標簽庫,提供了一些在Web應用中常用的標簽,例如迭代數組或集合的標簽。使用JSTL能夠使JSP代碼更為簡練,減少JSP中的代碼量。這些標簽能在多個場合重復使用,提高了開發效率。

16.如何使用JSTL

解析 使用JSTL和使用自定義的標記類似,也可以說,使用任何標記庫的步驟都類似,無非是每個標記的作用、名字以及屬性等不用而已。

參考答案

(1) 首先引入JSTL的tld文件和相關的jar文件。

(2) 在JSP中使用taglib指令指定要使用的tld的uri值,并自定義一個前綴。

(3) 在需要使用標記的地方,使用前綴引用標記,設置必要的屬性即可。

17.假設存在一個會話屬性list,list是泛型為Customer的集合對象,Customer中包含custname、age、address三個屬性。請使用JSTL中的迭代標記遍歷該list,將集合中的數據顯示到表格的行中。

解析 JSTL中有很多標記,開發員應該熟悉常用的標記的使用,例如迭代標記就是常用 標記之一。

參考答案

<c:forEach Item=”${sessionScope.list}” var=”cust”>

<tr>

<td>${cust.custname}</td>

<td>${cust.age}</td>

<td>${cust.address}</td>

<tr>

</c:forEach>

18.如何在web.xml中配置異常處理

解析 異常處理一直是應用開發中面對的一個問題。在Web應用中,也可以使用try/catch/finally處理異常,同時,還可以在web.xml中進行配置,對某種異常進行統一處理

參考答案 在web.xml中配置異常處理的方式如下:

<error-page>

<exception-type>com.oracle.exception.RegisterException</exception-type>

<location>/register.jsp</location>

</error-page>

上述配置后,當發生了RegisterException卻沒有被捕獲時,跳轉到register頁面進行處理。

第四部分 高級主題

1.Log4j有什么作用?

解析:Log4j目前使用最多的日志處理組件,程序員應該掌握Log4j

的使用。

參考答案:Log4j是Apache的一個開源項目,使用Log4j可以便捷地控制( )目的地,包括控制臺,文件,GUI組件以及NT事件記錄器等。同時,Log4j可以控制( )日志信息的輸出格式,也能夠通過定義每一條日志信息的級別,更加細致控制日志的( )程。

2.Log4j主要由哪三部分組成?每部分的主要作用是什么?

解析:掌握Log4j的使用,可以從了解Log4j的主要組件入手。

參考答案:Log4j包含三個主要組成部分,即Logger、Appender以及Layout。其中( )是日志記錄器,是Log4j的核心組件;一個Logger可以指定多個Appender,Appender( )定日志信息的輸出目的地,可以是文件、控制臺或消息文件等;一個Appender又可以指定( )個Layout,Layout用來指定日志信息的格式,可以使HTML、簡單文本等。

3.列舉至少3種Log4j的輸出目的地,并說明其含義。

解析:能夠將誒之輸出到不同目的地,是Log4j的一大特征。

參考答案

(1)org.apache. log4j.ConsoleAppender:將日志信息輸出到控制臺,如果Logger沒有使( )addAppender顯式添加Appender,默認使用ConsoleAppender。

(2)org.apache. log4j.FileAppender:將日志信息輸出到一個文件。

(3)org.apache. log4j.DailyRollingFileAppender:將日志信息輸出到一個日志文件,并且( )據指定的模式,可以按照一定的日期將日志信息輸出到一個新的日志文件。

4.使用properties文件配置Log4j屬性,要求日志級別為debug,目的地為文件( )式為HTML。

解析:使用Log4j進行日志管理,往往都在屬性文件中配置相關的屬性,開發員必須( )Log4j屬性的配置,才能夠順利的使用Log4j。

參考答案:

log4j.rootLogger=debug.appender1

log4j.appender.appender1=org.apache.log4j.FileAppender

log4j.appender.appender1.Threshold=debug

log4j.appender.appender1.ImmediateFlush=true

log4j.appender.appender1.File=log.html

log4j.appender.appender1.Append=true

log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

log4j.appender.appender1.layout.LocationInfo=true

log4j.appender.appender1.layout.Title=Log Message

5.在web應用中使用Log4j記錄日志,往往有哪些方法加載屬性文件?

解析 web應用中使用Log4j,首先需要考慮的的問題是如何加載屬性文件:

參考答案 web應用中加載Log4j的屬性文件往往有以下兩種方式:

(1)定義一個Servlet,并使用<load-on-startup>在web.xml中配置這個servlet,使得應用

加載時就初始化這個Servlet,從而可以在這個Servlet的init方法中加載Log4j屬性文件。只要加載了應用,就會初始化Servlet,就會調用init方法,從而就會加載屬性文件。

(2)定義一個上下文事件監聽器,在監聽器的contextInitialized方法中加載Log4j屬性文件。

這樣能夠保證只要加載了應用,就會觸發上下文時間,從而調用監聽器中的contextInitialized方法,加載Log4j屬性文件。

6.Ajax是什么含義?有什么作用?

解析 ajax并不是一個新技術,而是一系列已有技術的一個新的使用方法。目前,人們越來越關注用戶體驗,web應用開發員也應該注重這方面的技術發展。

參考答案 ajax是“Asynchronous JavaScript and XML”的簡稱,即異步的JavaScript和XML。Ajax就是能夠在web瀏覽器中實現與桌面應用類似客戶端技術。例如,使用ajax技術后,服務器端不會每次都返回一個完整的頁面,而會只返回一部分文本,只刷新頁面的一部分,不需要等待整個頁面刷新;使用ajax可以異步提交請求,不需要必須等待服務器端響應后才進行其他操作。可以說,Ajax試圖在web應用中實現桌面應用的功能和交互性,

并能夠使用和桌面應用中類似的友好界面和漂亮空間。

7.Ajax中的XMLHttpRequest對象有哪些作用?

解析 XMLHttpRequest對象是Ajax技術的核心對象,使用Ajax技術都是從XMLHttpRequest對象開始。

參考答案 XMLHttpRequest對象是Ajax技術的核心對象,使用Ajax技術都是從XMLHttpRequest對象開始。在ajax

應用程序中,XMLHttpRequest對象負責將用戶信息以異步方式發送到服務器端,并接收服務器相應的信息和數據。

8.什么是DOM?有什么作用?

解析:DOM是獨立于腳本和語言的概念,很多語言都對DOM進行了實現,DOM能夠對標記語言進行結構化的表示。

參考答案:DOM是Document Object Model的簡稱,即文檔對象模型,是用于HTML和XML文檔的API。DOM提供了文檔的結構化表示,把網頁和腳本或編程語言連接了起來,可以修改文檔的內容和視覺表現。使用Ajax編程時,從服務器返回的內容需要更新到客戶端頁面中,就可以使用DOM對象操作瀏覽器內容,進行局部刷新。

9.JSF框架的主要特點是什么?

解析:JSF框架已經是JavaEE規范的一部分,是非常有發展前景的框架,開發人員可以關注。

參考答案:JSF是一種以組件為中心來開發JavaWeb應用的框架。JSF提供了一組用戶界面組件,這些組件是可重用的,開發員可以利用這些組件方便地構建Web應用的用戶界面;

JSF框架支持開發自定義的用戶界面組件,而且這些自定義用戶界面組件同樣可以重用。另外,使用JSF框架,可以方便地進行輸入檢驗、國際化編程等。

課程推薦:java零基礎入門到精通

TAGS標簽:  java  面試  通關  要點  匯總  java面試通關要點

歡迎分享轉載→http://www.avcorse.com/read-238323.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖