javascript
JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域
JSP內置對象、基本動作指令、常見編譯指令及四大作用域
(一) JSP工作原理
當一個jsp頁面第一次被訪問的時候,jsp將執行以下三個步驟,之后的訪問速度會因為class文件已經生成而大大提高,當jsp引擎發送一個客戶端請求的時候,首先判斷請求的jsp頁面是否比對應生成的servlet文件,如果不同,對應的jsp需要重新編譯。
將jsp頁面翻譯成servlet,這個servlet是一個java文件,同時也是一個完整的java程序。
jsp引擎調用java編譯器對這個servlet進行編譯,得到可執行文件class。
jsp引擎調用java虛擬機來解釋執行class文件,生成向客戶端發送的應答,然后發送給客戶端。
(二) JSP內置對象
request:負責得到客戶端請求的信息,對應類型: javax.servlet.http.HttpServletRequest
response:負責向客戶端發出響應,對應類型:javax.servlet.http.HttpServletResponse
session:負責保存同一客戶端一次會話過程中的一些信息,對應類型:javax.servlet.http.httpsession
out:負責管理對客戶端的輸出,對應類型:javax.serlvet.jsp.jspwriter
application:表示整個應用環境的信息,對應類型:javax.servlet.servletcontext
config:表示ServletConfig,對應類型:javax.servlet.servletconfig
exception:表示頁面中發生的異常,可以通過它獲得頁面異常信息,對應類型:java.lang.exception
pagecontext:表示這個JSP頁面上下文,對應類型:javax.servlet.jsp.pagecontext
page:表示當前JSP頁面本身。
(三) JSP基本動作指令
jsp:include:在頁面被請求的時候引入一個文件。
jsp:useBean:尋找或者實例化一個JavaBean。
jsp:setProperty:設置JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記
(四) JSP常見編譯指令
page指令:定義頁面的一些屬性。以下是最常見的三種常見屬性:
a. contentType=“text/html;charset=utf-8”; 向瀏覽器端輸出數據的編碼
b. pageEncoding=“utf-8”; JSP編譯成java文件時所用的編碼
c. session=“true” 是否自動創建session
include指令:引入一個靜態的JSP頁面
taglib指令:引入一個標簽庫
(五) JSP四大作用域
JSP中的四種作用域包括page、request、session和application,具體來說:
page里的變量,只要頁面跳轉了,它們就不見了。如果把變量放到pageContext里,就說明它的作用域是page,它的有效范圍只在當前jsp頁面里。從把變量放到pageContext開始,到jsp頁面結束,你都可以使用這個變量。
request里的變量可以跨越forward前后的兩頁。但是只要刷新頁面,它們就重新計算了。如果把變量放到request里,就說明它的作用域是request,它的有效范圍是當前請求周期。
所謂請求周期,就是指從http請求發起,到服務器處理結束,返回響應的整個過程。在這個過程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面里你都可以使用這個變量。
session和application里的變量一直在累加,開始還看不出區別,只要關閉瀏覽器,再次重啟瀏覽器訪問這頁,session里的變量就重新計算了。
如果把變量放到session里,就說明它的作用域是session,它的有效范圍是當前會話。
所謂當前會話,就是指從用戶打開瀏覽器開始,到用戶關閉瀏覽器這中間的過程。這個過程可能包含多個請求響應。也就是說,只要用戶不關瀏覽器,服務器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變量,就可以在當前會話的所有請求里使用。
application里的變量一直在累加,除非你重啟tomcat,否則它會一直變大。如果把變量放到application里,就說明它的作用域是application,它的有效范圍是整個應用。
整個應用是指從應用啟動,到應用結束。我們沒有說“從服務器啟動,到服務器關閉”,是因為一個服務器可能部署多個應用,當然你關閉了服務器,就會把上面所有的應用都關閉了。
application作用域里的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。
總結
以上是生活随笔為你收集整理的JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb第二讲 重定向与转发 d
- 下一篇: N秒钟后自动跳转的html页面,java