JSP和Servlet面試題精選

來源:互聯網
上載者:User

1,JSP的內建對象有哪些?

答:JSP共有9個內建對象分別是:

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

response:網頁傳回使用者端的回應

pageContext:管理網頁的屬性

session:與請求有關的會話期

application:Servlet正在執行的內容

out:用來傳送回應的輸出

config:servlet的構架組件,配置資訊

page:表示JSP網頁本身

exception:異常,未捕捉的例外

2,JSP有哪些動作分別是什嗎?

答:jsp共有6個基本動作

jsp:include:在頁面被請求的時候引入一個檔案

jsp:useBean:尋找或者執行個體化一個JavaBean

jsp:setProperty:設定JavaBean的屬性

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

jsp:foward:把請求轉到一個新頁面

jsp:plugin:根據瀏覽器類型為Java外掛程式產生OBJECT或EMBED標記

3,JSP中動態include和靜態include的區別

答:動態include用jsp:include動作實現,它總是會檢查所包含檔案中的變化,適合用於包含動態網頁面,並且可以代參數

靜態include用include偽碼實現,並不會檢查包含檔案的變化,適用於包含靜態頁面

4,兩種跳轉方式分別是什麼有什麼區別?

答:1.forward跳轉:<jsp:forward page="跳轉頁面地址" />

2.response跳轉:response.sendRedirect("跳轉頁面地址");

兩種跳轉的區別如下:1.forward跳轉:a.伺服器端跳轉,地址欄不改變;b.執行到跳躍陳述式後馬上無條件跳轉,之後的代碼不再執行(跳轉之前一定要釋放全部資源);c.request設定的屬性在跳轉後的頁面仍可以使用;d.使用<jsp:param name="參數名" value="參數值" />傳遞參數。

2.response跳轉:a.用戶端跳轉,地址欄改變;b.所有代碼執行完畢後跳轉;c.跳轉後的頁面不能使用上一個頁面的request屬性;d.使用地址修正傳遞參數(response.sendRedirect("URL?參數名=參數值"))。

5,如何?servlet單線程模式

答:<%@ page isThreadSafe="false" %>

6,JSP和Servlet有哪些相同點和不同點?

答:Jsp是Servlet技術的擴充,本質上是Servlet的簡易方式,更強調應用的外部表格達。JSP編譯後是“類 servlet”。Servlet和JSP最主要的不同點在於Servlet的應用邏輯是在java檔案中,並且完全從展示層中HTML裡分離出來,而jsp是java和html結合成一個副檔名為.jsp的檔案,JSP側重於視圖,servlet側重於控制邏輯。

7,說說四種會話跟蹤技術

答:1,page是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的java servlet類(可以帶有任何的include指令,但是沒有include動作)表示。這既包括servlet又包括被編譯成servlet的jsp頁面。

2,request是代表與web用戶端發送的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個web組件

3,session代表與用於某個web用戶端的一個使用者體驗相關的對象和屬性,一個web會話可以也經常會跨越多個客戶機請求。

4,application是代表與整個web應用程式相關的對象和屬性,這實質上是跨越多個web應用程式,包括多個頁面、請求和會話的一個全域範圍。

8,說說Request對象的主要方法。

答:setAttribute(String name,Object,object):設定名字為name的request的參數值

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

getAttributeName():返回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():獲得查詢字串

getRequestURL():獲得發出請求字串的用戶端地址

getRemoteAddr():擷取用戶端的IP地址

getRemoteHost():擷取用戶端的名稱

getSession(Boolean create):返回和請求相關的session

getServerName():擷取伺服器的名稱

getServletPath():擷取用戶端所有請求的指令檔的路徑

getServerPort():擷取伺服器的連接埠號碼

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

9,如何防止在JSP或servlet中的輸出不被browser儲存在cache中?

答:把一下指令碼加入到jsp檔案中即可

<%

response.setHeader("Cache-Control","no-store");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires",0);

%>

10,在JSP中如何設定cookie?

答:設定

<%

    Cookie mycookie=new Cookie("aName","aValue");

   response.addCookie(mycookie);

%>

刪除:

<%

Cookie killMyCookie=new Cookie("mycookie",null);

killMyCookie.setMaxAge(0);

killMyCookie.setPath("/");

response.addCookie(killMyCookie);

%>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.