程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP網頁編程初解(一)

JSP網頁編程初解(一)

編輯:關於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] 
<html> 
       <head> 
              <meta http-equlv=”Content-Type” content=”text/html;charset=GBK”> 
              <title>一個簡單的JSP例子</title> 
       </head> 
       <body> 
              這是一個JSP的例子 
       </body> 
</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指令,這些知識將會在後面的章節中進行詳細介紹。


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

<%@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代碼 %>

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


[html] 
<%@pagecontentType="text/html" pageEncoding="UTF-8"%> 
<%! int a=100; %> 
<html> 
    <head> 
        <metahttp-equivmetahttp-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> 

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


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

<%@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指令的語法如下:


[html] 
<%@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" 
%> 

<%@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指令的這些屬性後,下面給出一段使用頁面指令的代碼以加深理解:


[html] 
<%@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> 

<%@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指令:


[html]
<%@ 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> 

<%@ 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指令,就可以直接將其加載到目標頁面,這樣就大大節省了時間。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved