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