jsp基本常識

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);

%>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章