Java筆試題之《Java web部分》

Java web部分java

1Tomcat的優化經驗web

     :去掉對web.xml的監視,把jsp提早編輯成Servlet數組

     有富餘物理內存的狀況,加大tomcat使用的jvm的內存瀏覽器

2HTTP請求的GETPOST方式的區別tomcat

     :servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,servicedestroy方法表達。服務器

3、解釋一下什麼是servlet;cookie

     :servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,servicedestroy方法表達。session

4、說一說Servlet的生命週期? 架構

     :servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,servicedestroy方法表達。app

     Servlet被服務器實例化後,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGetdoPost)等,當服務器決定將實例銷燬的時候調用其destroy方法。

     web容器加載servlet,生命週期開始。經過調用servletinit()方法進行servlet的初始化。經過調用service()方法實現,根據請求的不一樣調用不一樣的do***()方法。結束服務,web容器調用servletdestroy()方法。

5Servlet的基本架構

public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

}

}

6SERVLET APIforward() redirect()的區別?

     :前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向後的地址;後者則是徹底的跳轉,瀏覽器將會獲得跳轉的地址,並從新發送請求連接。這樣,從瀏覽器的地址欄中能夠看到跳轉後的連接地址。因此,前者更加高效,在前者能夠知足須要時,儘可能使用forward()方法,而且,這樣也有助於隱藏實際的連接。在有些狀況下,好比,須要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。

7、什麼狀況下調用doGet()doPost()

Jsp頁面中的FORM標籤裏的method屬性爲get時調用doGet(),爲post時調用doPost()

8Request對象的主要方法:

setAttribute(String name,Object):設置名字爲namerequest的參數值

getAttribute(String name):返回由name指定的屬性值

getAttributeNames():返回request對象全部屬性的名字集合,結果是一個枚舉的實例

getCookies():返回客戶端的全部Cookie對象,結果是一個Cookie數組

getCharacterEncoding():返回請求中的字符編碼方式

getContentLength():返回請求的Body的長度

getHeader(String name):得到HTTP協議定義的文件頭信息

getHeaders(String name):返回指定名字的request Header的全部值,結果是一個枚舉的實例

getHeaderNames():返回因此request Header的名字,結果是一個枚舉的實例

getInputStream():返回請求的輸入流,用於得到請求中的數據

getMethod():得到客戶端向服務器端傳送數據的方法

getParameter(String name):得到客戶端傳送給服務器端的有name指定的參數值

getParameterNames():得到客戶端傳送給服務器端的全部參數的名字,結果是一個枚舉的實例

getParametervalues(String name):得到有name指定的參數的全部值

getProtocol():獲取客戶端向服務器端傳送數據所依據的協議名稱

getQueryString():得到查詢字符串

getRequestURI():獲取發出請求字符串的客戶端地址

getRemoteAddr():獲取客戶端的IP地址

getRemoteHost():獲取客戶端的名字

getSession([Boolean create]):返回和請求相關Session

getServerName():獲取服務器的名字

getServletPath():獲取客戶端所請求的腳本文件的路徑

getServerPort():獲取服務器的端口號

removeAttribute(String name):刪除請求中的一個屬性

9forward redirect的區別

         forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,而後把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,因此它的地址欄中仍是原來的地址。 redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器從新去請求那個地址,通常來講瀏覽器會用剛纔請求的全部參數從新請求,因此session,request參數均可以獲取。

10request.getAttribute() request.getParameter() 有何區別?

11. jsp有哪些內置對象?做用分別是什麼? 分別有什麼方法?

     :JSP共有如下9個內置的對象:

request 用戶端請求,此請求會包含來自GET/POST請求的參數

response 網頁傳回用戶端的迴應

pageContext 網頁的屬性是在這裏管理

session 與請求有關的會話期

application servlet 正在執行的內容

out 用來傳送回應的輸出

config servlet的構架部件

page JSP網頁自己

exception 針對錯誤網頁,未捕捉的例外

     request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,而且提供了幾個用於獲取cookie, header, session數據的有用的方法。

    response表示HttpServletResponse對象,並提供了幾個用於設置送回 瀏覽器的響應的方法(如cookies,頭信息等)

    o ut對象是javax.jsp.JspWriter的一個實例,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。

    pageContext表示一個javax.servlet.jsp.PageContext對象。它是用於方便存取各類範圍的名字空間、servlet相關的對象的API,而且包裝了通用的servlet相關功能的方法。

   session表示一個請求的javax.servlet.http.HttpSession對象。Session能夠存貯用戶的狀態信息

   applicaton 表示一個javax.servle.ServletContext對象。這有助於查找有關servlet引擎和servlet環境的信息

   config表示一個javax.servlet.ServletConfig對象。該對象用於存取servlet實例的初始化參數。

   page表示從該頁面產生的一個servlet實例

12. jsp有哪些動做?做用分別是什麼?

(這個問題彷佛不重要,不明白爲什麼有此題)

:JSP共有如下6種基本動做

jsp:include:在頁面被請求的時候引入一個文件。

jsp:useBean:尋找或者實例化一個JavaBean

jsp:setProperty:設置JavaBean的屬性。

jsp:getProperty:輸出某個JavaBean的屬性。

jsp:forward:把請求轉到一個新的頁面。

jsp:plugin:根據瀏覽器類型爲Java插件生成OBJECTEMBED標記

13JSP的經常使用指令

     isErrorPage(是否能使用Exception對象)isELIgnored(是否忽略表達式)

14. JSP中動態INCLUDE與靜態INCLUDE的區別?

     答:動態INCLUDEjsp:include動做實現

     <jsp:include page=included.jsp flush=true />它老是會檢查所含文件中的變化,適合用於包含動態頁面,而且能夠帶參數 靜態INCLUDEinclude僞碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面 <%@ include file=included.htm %>

15、兩種跳轉方式分別是什麼?有什麼區別?

     (下面的回答嚴重錯誤,應該是想問forwardsendRedirect 的區別,畢竟出題的人不是專業搞文字藝術的人,可能表達能力並不見得很強,用詞不必定精準,加之其自身的技術面也可能存在一些問題,不必定真正將他的意思表達清楚了,嚴格意思上來說,一些題目可能根本就無人能答,因此,答題時要掌握主動,只要把本身知道的表達清楚就夠了,而不要去推敲原始題目的具體含義是什麼,不要一味想着是在答題)

答:有兩種,分別爲:

<jsp:include page=included.jsp flush=true>

<jsp:forward page= nextpage.jsp/>

     前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面仍是原來的頁面。執行完後還會回來,至關於函數調用。而且能夠帶參數.後者徹底轉向新頁面,不會再回來。至關於go to 語句。

16、頁面間對象傳遞的方法

requestsessionapplicationcookie

17JSPServlet有哪些相同點和不一樣點,他們之間的聯繫是什麼?

     JSPServlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"servlet"ServletJSP最主要的不一樣點在於,Servlet的應用邏輯是在Java文件中,而且徹底從表示層中的HTML裏分離開來。而JSP的狀況是JavaHTML能夠組合成一個擴展名爲.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。

18MVC的各個部分都有那些技術來實現?如何實現?

     :MVCModelViewController的簡寫。Model 表明的是應用的業務邏輯(經過JavaBeanEJB組件實現), View 是應用的表示面(由JSP頁面產生),Controller 是提供應用的處理過程控制(通常是一個Servlet),經過這種設計模型把應用邏輯,處理過程和顯示邏輯分紅不一樣的組件實現。這些組件能夠進行交互和重用。

19、咱們在web應用開發過程當中常常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個某種編碼的字符串?

 Public String translate (String str) {

   String tempStr = "";

   try {

     tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

     tempStr = tempStr.trim();

   }

   catch (Exception e) {

     System.err.println(e.getMessage());

   }

   return tempStr;

 }

20.如今輸入n個數字,以逗號,分開;而後可選擇升或者降序排序;按提交鍵就在另外一頁面顯示按什麼排序,結果爲,提供reset

21. 實際項目開發

22、在eclipse中調試時,怎樣查看一個變量的值?

     在要查看的變量前先設置斷點,而後選中變量,右鍵選debug as-->Java Application,打開debug透視圖,這時在Variables窗口中能夠看到變量當前的值。

     若是是局部變量,也能夠在局部變量窗口中查看。

     要知道一個方法被調用的方法調用鏈,能夠在方法棧中查看。

23、大家公司使用的代碼配置管理工具是什麼?

     除了說之前使用cvs,如今新項目使用svn了,還簡要說一下使用的過程,若是有可能,還說說倉庫的概念和如何使用鎖之類的細節。

24、大家的項目總金額多少,多少人開發,總共花了多少個月?

     像巴巴運動網這種規模的項目,能夠說是45我的、開發了45個月,費用則是450萬。按每人每個月兩萬收入去計算,就差很少了。

相關文章
相關標籤/搜索