JSP學習總結



JSP學習總結

每一個JSP都被翻譯成一個Servlet,然後再編譯執行

一個JSP翻譯之後繼承HttpJspBase類,實現JspSourceDependent接口

Jsp生命週期

1.翻譯

2.編譯

3.加載類 ü  

4.實例化類 ü  

5.jspInit()調用 ü  

6._jspService()調用 ü  

7.jspDestroy()調用

JSP中共有9個內置對象,分別是:

request,response,session,out,application,pageContext,page, config,exception

查看jsp翻譯後的代碼可以發現這九個內置對象是在_jspService()方法中創建並初始化的

其中常用的內置對象有4個,下面重點介紹這四個內置對象

1.《請求級別》request獲取請求信息,轉發數據

在原位置保存數據,在轉發目標位置來獲取數據

所以request(請求轉發)是兩個頁面之間共享數據的功能

request.setAttribute(key,value);

request.getRequestDispatcher(Dream.jsp).forward(request,response);

在目標頁面可以獲取請求級別共享的數據

方法一:Java代碼獲取共享數據

<%

String value=request.getAttribute(key).toString();

%>

方法二:EL表達式獲取共享數據<requestScope表示取那個範圍>

${requestScope.key}

方法三:EL表達式獲取共享數據《會在所有範圍中尋找key的參數,從小範圍到大範圍找pageContext-->request-->session-->application》

${key}

2.《頁面級別》pageContext可以通過方法set/getAttribute方法來保存/獲取數據。操作數據作用範圍只在當前頁面有效,當數據存儲好後,任意位置可以使用該數據pageContext.setAttribute(key,value);

<%=pageContext.getAttribute(key)%>//太麻煩

<!--通過EL表達式訪問更方便-->

${key}//很方便

3.《會話級別》Session。當一個客戶端,連接服務器(對服務器發出請求),雙方會建立一個會話。通過會話,服務器才能辨認出每一個客戶端。

服務器會爲每一個客戶端分配一個ID,根據時間形成,不會重複。在客戶端也會保存一個文件(cookie)裏面保存這個ID

當客戶端離開會話,或者關閉瀏覽器,會話就會結束,

會話默認持續20分鐘會關閉

使用session,主要在連接與斷開這個期間,使服務器與客戶端之間共享數據

Session  ID會話期間ID是不變的(每個電腦是一個客戶端,而不是每個瀏覽器)

電腦(客戶端)連接上服務器,電腦上(客戶端)會生成一個Cookie,服務器端會有一個Session ID

一般用於存儲用戶名

4.《應用級別》application

當服務器啓動,就可以向appliaction範圍來存儲數據,該範圍內的數據,服務器和所有的用戶共享。

服務器關閉,這些數據纔會消失,也可以通過函數刪除這些數據

常用於網站計數器 

5.out輸出信息(out.print()在頁面輸出信息)

6.response對象:當前響應對象

7.page:指向頁面自身的方式,相當於this關鍵字

8.config:與當前JSP頁面的Servlet對應的ServletConfig對象

9.exception:其他地方拋出的Throwable對象,僅當<%@ page isErrorPage=true%>時有效

 

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章