JavaWeb:JSP技術基礎

來源:互聯網
上載者:User

標籤:\n   xml文法   ==   cti   integer   ||   編寫   .com   obj   

JavaWeb:JSP技術快速開始介紹
  •   JSP全稱Java Server Pages,是一種動態網頁開發技術。它使用JSP標籤在HTML網頁中插入Java代碼。標籤通常以<%開頭以%>結束
  •   JSP是一種Java servlet,主要用於實現Java web應用程式的使用者介面部分。網頁開發人員們通過結合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來編寫JSP。
  •   JSP通過網頁表單擷取使用者輸入資料、訪問資料庫及其他資料來源,然後動態地建立網頁
  •   JSP標籤有多種功能,比如訪問資料庫、記錄使用者選擇資訊、訪問JavaBeans組件等,還可以在不同的網頁中傳遞控制資訊和共用資訊
  •   JSP 技術是以 Java 語言作為指令碼語言的,JSP 網頁為整個伺服器端的 Java 庫單元提供了一個介面來服務於HTTP的應用程式。
  •   JSP檔案尾碼名為 *.jsp 。
  •   JSP開發的WEB應用可以跨平台使用,既可以運行在 Linux 上也能運行在 Windows 上。
第一個JSP頁面
<html>    <head>           <title>第一個 JSP 程式</title>    </head>    <body>           <%                  out.println("Hello World!");           %>    </body></html>
JSP處理JSP建立過程

以下步驟表明了 Web 服務器是如何使用JSP來建立網頁的:

  • 就像其他普通的網頁一樣,您的瀏覽器發送一個 HTTP 要求給伺服器。

  • Web 服務器識別出這是一個對 JSP 網頁的請求,並且將該請求傳遞給 JSP 引擎。通過使用 URL或者 .jsp 檔案來完成。

  • JSP 引擎從磁碟中載入 JSP 檔案,然後將它們轉化為 Servlet。這種轉化只是簡單地將所有模板文本改用 println() 語句,並且將所有的 JSP 元素轉化成 Java 代碼。

  • JSP 引擎將 Servlet 編譯成可執行類,並且將原始請求傳遞給 Servlet 引擎。

  • Web 服務器的某組件將會調用 Servlet 引擎,然後載入並執行 Servlet 類。在執行過程中,Servlet 產生 HTML 格式的輸出並將其內嵌於 HTTP response 中上交給 Web 服務器。

  • Web 服務器以靜態 HTML 網頁的形式將 HTTP response 返回到您的瀏覽器中。

  • 最終,網頁瀏覽器處理 HTTP response 中動態產生的HTML網頁,就好像在處理靜態網頁一樣。

圖例

  

  一句話說明,JSP與Servlet關係:JSP 網頁就是用另一種方式來編寫 Servlet 而不用成為 Java 編程高手。除瞭解釋階段外,JSP 網頁幾乎可以被當成一個普通的 Servlet 來對待

JSP生命週期

  理解JSP底層功能的關鍵就是去理解它們所遵守的生命週期。JSP生命週期就是從建立到銷毀的整個過程,類似於servlet生命週期,區別在於JSP生命週期還包括將JSP檔案編譯成servlet

以下是JSP生命週期中所走過的幾個階段:

編譯階段

當瀏覽器請求JSP頁面時,JSP引擎會首先去檢查是否需要編譯這個檔案。如果這個檔案沒有被編譯過,或者在上次編譯後被更改過,則編譯這個JSP檔案。

編譯的過程包括三個步驟:

  • 解析JSP檔案。
  • 將JSP檔案轉為servlet。
  • 編譯servlet。
初始化階段

容器載入JSP檔案後,它會在為請求提供任何服務前調用jspInit()方法。如果您需要執行自訂的JSP初始化任務,複寫jspInit()方法就行了,就像下面這樣:

public void jspInit(){  // 初始化代碼}

一般來講程式只初始化一次,servlet也是如此。通常情況下您可以在jspInit()方法中初始化資料庫連接、開啟檔案和建立查詢表。

執行階段

  這一階段描述了JSP生命週期中一切與請求相關的互動行為,直到被銷毀。

銷毀階段

  SP生命週期的銷毀階段描述了當一個JSP網頁從容器中移除時所發生的一切

JSP開發基礎文法

JSP指令

  JSP指令用來設定整個JSP頁面相關的屬性,如網頁的編碼方式和指令碼語言

文法格式如下:

<%@ directive attribute="value" %>

指令可以有很多個屬性,它們以索引值對的形式存在,並用逗號隔開。

JSP中的三種指令標籤:

指令 描述
<%@ page ... %> 定義網頁相依性屬性,比如指令碼語言、error頁面、緩衝需求等等
<%@ include ... %> 包含其他檔案
<%@ taglib ... %> 引入標籤庫的定義
JSP動作元素說明

  與JSP指令元素不同的是,JSP動作元素在請求處理階段起作用。JSP動作元素是用XML文法寫成的。利用JSP動作可以動態地插入檔案、重用JavaBean組件、把使用者重新導向到另外的頁面、為Java外掛程式產生HTML代碼。動作元素只有一種文法,它符合XML標準:

<jsp:action_name attribute="value" />

動作元素基本上都是預定義的函數,JSP規範定義了一系列的標準動作,它用JSP作為首碼,可用的標準動作元素如下:

文法 描述
jsp:include 在頁面被請求的時候引入一個檔案。
jsp:useBean 尋找或者執行個體化一個JavaBean。
jsp:setProperty 設定JavaBean的屬性。
jsp:getProperty 輸出某個JavaBean的屬性。
jsp:forward 把請求轉到一個新的頁面。
jsp:plugin 根據瀏覽器類型為Java外掛程式產生OBJECT或EMBED標記。
jsp:element 定義動態XML元素
jsp:attribute 設定動態定義的XML元素屬性。
jsp:body 設定動態定義的XML元素內容。
jsp:text 在JSP頁面和文檔中使用寫入文本的模板
示範

 

JSP簡單應用頁面自動重新整理

這個例子使用了setIntHeader()方法來設定重新整理頭,類比一個數字時鐘:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*" %><html><head><title>自動重新整理執行個體</title></head><body><h2>自動重新整理實</h2><%   // 設定每隔5秒重新整理一次   response.setIntHeader("Refresh", 5);   // 擷取目前時間   Calendar calendar = new GregorianCalendar();   String am_pm;   int hour = calendar.get(Calendar.HOUR);   int minute = calendar.get(Calendar.MINUTE);   int second = calendar.get(Calendar.SECOND);   if(calendar.get(Calendar.AM_PM) == 0)      am_pm = "AM";   else      am_pm = "PM";   String CT = hour+":"+ minute +":"+ second +" "+ am_pm;   out.println("目前時間為: " + CT + "\n");%></body></html>
點擊量統計
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*" %><html><html><head><title>訪問量統計</title></head><body><%    Integer hitsCount =       (Integer)application.getAttribute("hitCounter");    if( hitsCount ==null || hitsCount == 0 ){       /* 第一次訪問 */       out.println("歡迎訪問菜鳥教程!");       hitsCount = 1;    }else{       /* 返回訪問值 */       out.println("歡迎再次訪問菜鳥教程!");       hitsCount += 1;    }    application.setAttribute("hitCounter", hitsCount);%><p>頁面訪問量為: <%= hitsCount%></p></body></html>
頁面重新導向
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*" %><html><html><head><title>頁面重新導向</title></head><body><h1>頁面重新導向</h1><%   // 重新導向到新地址   String site = new String("http://www.runoob.com");   response.setStatus(response.SC_MOVED_TEMPORARILY);   response.setHeader("Location", site); %></body></html>

 

 

 

JavaWeb:JSP技術基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.