JSP網頁編程初解(一)

JSP網頁編程初解

       JSP是當今Web開發中最重要的部分之一,它是直接和客戶界面的部分。對於商業軟件來說,JSP顯得尤其重要。

1、JSP簡介

       JSP是JavaServer Pages的縮寫,是右Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。在HTML文件中加入Java程序代碼就構成了JSP網頁。Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的Java程序代碼,然後將執行結果以HTML姓氏返回給客戶。Java程序運行在服務器端,客戶端只用於顯示。

       1)、主流Web技術介紹

       JSP技術並不是唯一的動態網頁技術,在JSP技術出現之前就有幾種比較好用的動態網頁技術,這些技術主要有一下幾種。

       >CGI:英文全稱Common GatewayInterface,通常翻譯爲通用網關接口。是HTTP服務器與機器上的其他程序進行通信的一個接口。它的出現使網頁從靜態變成了動態。但是因爲要生成一個動態網頁,當HTTP服務器收到對CGI程序的請求時,每一個請求都將啓動一個新的進程。當有大量用戶請求調用CGI應用程序時,多個CGI應用程序的執行將導致服務器的大量負載,會嚴重影響服務器系統性能。

       >ASP:英文全稱Active ServerPage,它是Microsoft公司開發的一種處理動態頁面的技術,同時它可以在HTML中內嵌一些腳本語言,如JavaScript。它將Web上的請求轉入到服務器中,在服務器中對所有的ASP腳本語言進行解釋執行。ASP是一種比較好用的技術,但它的缺點是只能在微軟公司的Windows NT平臺中支持IIS服務器。

       >PHP:英文全稱Personal HomePage,PHP是一種跨平臺的服務器端的嵌入式腳本語言。它大量地借用C、Java和Perl語言的語法,並耦合PHP自己的特性,使Web開發者能夠快速地寫出動態頁面。它支持目前絕大多數數據庫。還有PHP是完全免費的,可以自由下載。而且用戶可以不受限制地獲得源碼,甚至可以加入自己需要的特色。對於小項目,它是一個之分適合的編程語言。但是對於較大的和更爲複雜的項目,PHP就顯得薄弱了。

       >JSP:英文全稱Java Server Pages。JSP與上面幾種技術相比,主要具有如下優點:

       >>運行速度快:僅在第一次請求時進行編譯、加載;

       >>內容的生成和顯示是分離的;

       >>平臺無關性:基本上可以在所有平臺上的任意環境中開發;

       >>具有Java的所有的強大功能;

       >>將內容的產生和顯示進行分離;

       >>用標識簡化頁面開發;

       >>強調可重用的羣組件。

       2)、JSP的運行環境介紹

       從最開始的JSWDK到現在的Tomcat、WebLogic等,JSP的運行環境在逐漸改變,出現了很多優秀的JSP容器。常用的JSP容器有Tomcat、WebLogic、WebSphere

       3)、安裝和啓動JSP運行環境

       在安裝JSP運行環境之前,首先要安裝JDK,這個太簡單不叨叨了。接下來要安裝Tomcat,下載網址爲:http://tomcat.apache.org/。下載完畢按照默認設置進行安裝即可。在系統環境變量中新建一個名爲TOMCAT_HOME的系統變量,將其值設置爲Tomcat安裝的目錄即可(我的是D:\Apache Software Foundation\Tomcat7.0_SingerFive)。

2、JSP程序演示

       下面就從最簡單的入門開始介紹,先體驗一下JSP,瞭解什麼是JSP,開始的時候可能會認爲很簡單,但隨着學習的不斷深入,你會越來越感覺到JSP的強大。

       1)、體驗JSP

       下面編寫一個簡單的JSP程序,它的內容和HTML文件是一樣的,唯一的區別的是他的文件名後綴是.jsp,而不是.html。

<html>
       <head>
              <meta http-equlv=”Content-Type” content=”text/html;charset=GBK”>
              <title>一個簡單的JSP例子</title>
       </head>
       <body>
              這是一個JSP的例子
       </body>
</html>

       如果將上述代碼存爲.html,則可以直接使用瀏覽器打開該文件,否則以.jsp爲後綴則不可以直接雙擊該文件來查看實際的運行效果,而需要把它部署到JSP容器中(Tomcat),使用JSP容器解析後才能查看。

       2)、JSP與HTML的初步結合

       下面是一個簡單的JSP與HTML結合的程序,這個程序中用到了JSP腳本標籤指令中的pages指令,這些知識將會在後面的章節中進行詳細介紹。

<%@page contentType="text/html"pageEncoding="UTF-8"%>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
           <title>XXXXXXXXX</title>
        </head>
        <body>
            <h1>這是一個JSP和HTML</h1>
        </body>
    </html>

       把此jsp文件複製到Tomcat地址下的jspexample下(我的是D:\Apache Software Foundation\Tomcat7.0_SingerFive\webapps\examples\jsp\ jspTest.jsp),在瀏覽器中輸入地址即可打開查看。

       在第一行中運用了page指令。當瀏覽器第一次請求JSP頁面時,容器首先會將該JSP文件編譯爲Servlet類文件,然後容器將這個類加載到容器的虛擬機(Java Virtual Machine)中並運行這個Servlet類,最後將結果送到客戶端。

3、JSP的基本語法

       JSP網頁本身是由特定JSP元素內嵌在HTML網頁中形成的。除了HTML變遷外,JSP提供了5中構建網頁內容時所需要的元素。

       >指令(directive)

       >聲明(declaration)

       >程序代碼(scriptlet)

       >表達式(expression)

       >註釋(comments)

       JSP指令用於設置和整個JSP頁面相關的屬性,如頁面的腳本語言、需要導入的Java包名以及頁面編碼的字符集等。JSP的語法如下:

              <%@ 指令名屬性=”值”%>

       JSP指令包括page、include和taglib3種指令。以後將會對JSP指令進行詳細介紹。

       JSP聲明用於聲明該頁面的屬性和方法,聲明後的屬性和方法適用於JSP中的任何部分,相當於類中的成員方法和成員變量。其JSP語法如下:

              <%! 聲明部分 %>

       在下面的代碼中分別聲明瞭一個變量和一個方法:

       <%!

           int i = 1;

       %>

       <%!

           void method{}

       %>

       JSP程序代碼時JSP中最常見的腳本元素,其實質是一段有效的Java語言代碼。JSP程序代碼包括在<%....%>之間。其JSP語法如下:

              <% Java代碼 %>

       以下代碼在客戶端輸出一些內容:

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<%! int a=100; %>
<html>
    <head>
        <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>XXXXXXXXX</title>
    </head>
    <body>
        <h3>輸出從100到200之間的數</h3>
        <%
        for(int i = 0 ; i < 100 ; i++){
            out.println(i+a +"<br>");
        }
    %>
    </body>
</html>

       JSP表達式使用的標記對是<%=...%>,其所得的結果被轉化爲字符串並顯示在頁面上。例如這段代碼就實現了簡單的劍法運算:

<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <title>XXXXXXXXX</title>
    </head>
    <body>
        <h3>運算:5-2 =<%=(5-2)%></h3>
   </body>
</html>

       JSP註釋用來對程序代碼進行解釋和說明,常見的註釋包括顯示註釋和隱式註釋兩種。顯示註釋主要是指HTML文件的註釋,當請求包含顯示註釋的JSP頁面時,可以通過源代碼查看註釋。其語法如下:

       <!—註釋內容 -->

       例如:    <body>

                      <h3>這是一個使用了顯示註釋的頁面</h3>

                      <!--在這裏註釋說明-->

                  </body>

       顯示註釋在通過瀏覽器查看源文件(HTML)時會看到,而隱式註釋是指包含在<%--...--%>之間的內容,隱式註釋在JSP頁面上時無法看到的,而且在HTML源文件中也是看不到的,其語法如下:

              <%-- 註釋內容 --%>

·       下面的代碼中使用了隱式註釋,讀者可以通過這兩個例子的對比進一步理解這兩種註釋的區別:

           <body>

               <h3>這是一個使用了顯示註釋的頁面</h3>

               <%-- 在這裏註釋說明 --%>

           </body>

4、JSP指令

       JSP指令用於設置和整個JSP頁面相關的屬性。JSP指令包括page、include和taglib3中指令。下面將對page指令和include指令元素進行詳細介紹。

       1)、page指令

       Page指令用來定義頁面的很多屬性,如腳本語言、編碼方式、導入的java包等。Page指令的語法如下:

<%@page
    language="java"
    session="true/false"
    pageEncoding="characterSet"
    isThreadSafe="true/false"
    isErrorPage="true/false"
    info="text"
   import="package.class/package.*,...."
    extends="package.class"
    errorPage="relativeURL"
   contentType="TYPE,charset=CHARSET"
    buffer="none/8kb/sizekb"
    autoFlush="true/false"
%>

       這些屬性的說明下表所示:

屬性名

說明

舉例

Language

指定JSP頁面使用的腳本語言,目前只能使用Java

<%@page langage=”java”%>

Session

指定JSP是否使用session

<%@page session=”true”%>

pageEncoding

JSP頁面本身的編碼字符集

<%@page pageEncoding=”gb2312”%>

isErrorPage

指定該JSP文件是否顯示錯誤頁面

<%@page isErrorPage=”true”%>

isThreadSafe

指定JSP文件是否能夠使用多線程

<%@page isThreadSafe=”true”%>

Info

設置JSP頁面的信息

<%@page info=”字符串”%>

Import

指定引入的Java包

<%@page import=”java.util”%>

ErrorPage

指定出現異常時調用的頁面

<%@page errorPage=”erroe=r.jsp”%>

contentType

指定JSP頁面的文件格式與服務器發送給客戶端時的內容編碼字符集

<%@page contentType=”text/html;charset=GBK”%>

Buffer

指定JSP網頁的緩衝區大小

<%@page buffer=”32kb”%>

autoFlush

值爲true,將數據輸出到客戶端

值爲false,出現異常

<%@page autoFlush=”true”%>

       在瞭解page指令的這些屬性後,下面給出一段使用頁面指令的代碼以加深理解:

<%@page
    contentType="text/html ;charset=GBK"
    pageEncoding="UTF-8"
    import="java.util.*"
    session="true"
    buffer="32kb"
%>
<html>
    <head>
        <title>JSP的頁面指令</title>
    </head>
    <body>
        <h3>這是一個有多個頁面指令的網頁</h3>
    </body>
</html>

       2)、include指令

       用來將文件插入到JSP網頁上,這些文件可以是文本文件、HTML文件或者JSP文件。該指令的語法如下,file是指所要加載的文件路徑。

              <%@ include file=”文件的相對路徑”%>

       下面的程序講解了如何使用include指令:

<%@ pagelanguage="java" import="java.util.*"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%@includefile="test.html"%>
<html>
    <head>
        <title>test include</title>
    </head>
    <body>
        <h3>這是一個測試include指令的頁面</h3>
    </body>
</html>

       一般需要將經常使用的代碼寫在個別文件中,如果沒有include指令,那麼久必須在每個文件中寫入相同的代碼,這樣就會造成時間的浪費和效率的低下。有了include指令,就可以直接將其加載到目標頁面,這樣就大大節省了時間。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章