JSP基礎知識及工程建立

BestEden發表於2016-07-23

什麼是JSP

JSP (Java Server Pages)是指:
**在HTML中嵌入Java指令碼程式碼,由應用伺服器中的JSP引擎來編譯和執行嵌入的Java指令碼程式碼,
然後將生成的整個頁面資訊返回給客戶端。**

JSP由靜態部分和動態部分組成。

動態部分:

  1. 小指令碼 <% %>
  2. 表示式 <%= %>
  3. 宣告 <%! %>
  4. 註釋 <!-- 客戶端註釋 --> <%-- 伺服器端的註釋 --%>
  5. 指令 <%@ %>

建立jsp工程步驟

  1. File->New->Dynamic Web Project
  2. 建立好工程後會有一個src目錄,裡面用來存放我們的.java檔案,
  3. 另外一個是WebContent或者是WebRoot,我們所有的圖片、音訊、視訊、html、css、js等(即除java程式碼外)都必須放到這個目錄下
  4. 我們需要匯入的外部包,需要放到WebContent|WebRoot->WEB-INF/lib資料夾中

JSP頁面的執行流程

當第一次訪問jsp頁面的時候,先由伺服器(jsp引擎)將jsp頁面翻譯成xxjsp.java,然後編譯成.class檔案,然後執行。當再訪問時,會重用以前編譯好的jsp.class檔案,並且這些檔案都存放在tomcat的work/Catalina/localhost/<專案名>/org/apache/jsp/目錄下(tomcat為例),最後執行jsp.class檔案,並將結果返回給客戶端。當jsp頁面發生修改時,會自動重新翻譯、編譯。


JSP內建物件

  1. out(輸出流):伺服器到客戶端。
  2. session(會話):瀏覽器成功連線到伺服器到離開伺服器。
  3. application:伺服器啟動到伺服器關閉。(如:統計線上人數)
  4. request(請求):瀏覽器向伺服器傳送的資訊。
  5. response(響應):伺服器會送瀏覽器給的資訊。

request物件:該物件封裝了使用者提交的資訊,通過呼叫該物件相應的方法可以獲取封裝的資訊,即使用該物件可以獲取使用者提交的資訊。
Response物件:對客戶的請求做出動態的響應,向客戶端傳送資料。
Session物件:

  1. Session物件是一個JSP內建物件,它在第一個JSP頁面被裝載時自動建立,完成會話期管理。
  2. 從一個客戶開啟瀏覽器並連線到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話。
  3. 當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間切換,伺服器應當通過某種辦法知道這是一個客戶,就需要Session物件。

Application物件:負責提供應用程式在伺服器中執行時的一些全域性資訊。

伺服器啟動後就產生了這個Application物件,當客戶再所訪問的網站的各個頁面之間瀏覽時,這個Application物件都時同一個,直到伺服器關閉。但是與Session物件不同的時,所有客戶的Application物件都時同一個,即所有客戶共享這個內建的Application物件。

注:Web伺服器不記錄使用者的狀態。應答模式,不能一直線上,一連線就斷

重定向與內部轉發

重定向

  1. 會傳送兩次請求
  2. 位址列會發生變化
  3. 可以訪問伺服器以外的資源
  4. 不可以訪問WB-INF下的資源
  5. 不能獲取上一次請求的資訊

客戶端請求伺服器的一個資源1並響應,客戶端請求另一個資源2,資源2響應給客戶端 位址列顯示為資源2的url


內部轉發

  1. 只會傳送一次請求
  2. 位址列不會變化
  3. 訪問在同一個伺服器的資源,不能訪問伺服器以外的資源
  4. 可以訪問WEB-INF下的資源
  5. 能獲取上一次的請求的資訊

客戶端請求伺服器的一個資源1,資源1找到資源2,響應給客戶端,位址列為資源1的url

其他知識

Tomcat的主要目錄

  • bin:存放二進位制檔案或可執行檔案
  • conf:有關tomcat的一些配置檔案
  • lib:支撐包或依賴包
  • logs:日誌檔案目錄
  • temp:臨時檔案目錄
  • webapps(web applications):web應用程式目錄
  • work:存放一些轉譯、編譯過來的檔案

**注意:修改配置檔案後,一定要記得重啟伺服器。
修改預設訪問的資源頁面可以在conf->web.xml中最下面的中修改
修改埠號在conf->server.xml中的 Connector的port屬性的值**

URL(Uniform Resource Locator):統一資源定位符

由三部分組成:

  1. 協議。常用的有http:// https:// ftp:// file:///
  2. 主機IP和埠號,如果埠號是80則可用省略。IP地址是用來查詢主機的,而埠號是用來找應用程式的。
  3. 為資源地址,預設訪問的是index.XX。如:index.html index.jsp index.htm