主頁(yè) > 知識(shí)庫(kù) > 一個(gè)開(kāi)發(fā)人員眼中的JSP技術(shù)(上)

一個(gè)開(kāi)發(fā)人員眼中的JSP技術(shù)(上)

熱門(mén)標(biāo)簽:廣州三五防封電銷卡 四川電信外呼系統(tǒng)靠譜嗎 長(zhǎng)春回?fù)芡夂粝到y(tǒng)廠家 地圖標(biāo)注創(chuàng)業(yè)項(xiàng)目入駐 電銷外呼系統(tǒng) 排行榜 山東智能云外呼管理系統(tǒng) 地圖標(biāo)注制作道路 外呼系統(tǒng)啥意思 珠海銷售外呼系統(tǒng)運(yùn)營(yíng)商
(作者:天譯編譯 2000年12月01日 14:26)

JavaServerTM Pages(JSP)技術(shù)為我們提供了一種建立動(dòng)態(tài)網(wǎng)頁(yè)的簡(jiǎn)單方法,而且也簡(jiǎn)化了構(gòu)造web程序的工作。本文從一個(gè)開(kāi)發(fā)人員的角度對(duì)JSP技術(shù)做了一個(gè)全面介紹(并提供了一些JSP實(shí)例程序)。
前言
JavaServer Pages技術(shù)可以讓web開(kāi)發(fā)人員和設(shè)計(jì)人員非常容易的創(chuàng)建和維護(hù)動(dòng)態(tài)網(wǎng)頁(yè),特別是目前的商業(yè)系統(tǒng)。作為JavaTM技術(shù)的一部分,JSP能夠快速開(kāi)發(fā)出基于web、獨(dú)立于平臺(tái)的應(yīng)用程序。JSP 把用戶界面從系統(tǒng)內(nèi)容中分離開(kāi)來(lái),使得設(shè)計(jì)人員能夠在不改變底層動(dòng)態(tài)內(nèi)容的前提下改變整個(gè)網(wǎng)頁(yè)布局。
那么什么是JavaServer Page呢?簡(jiǎn)單的說(shuō),一個(gè)JSP網(wǎng)頁(yè)就是在HTML網(wǎng)頁(yè)中包含了能夠生成動(dòng)態(tài)內(nèi)容的可執(zhí)行應(yīng)用程序代碼。此應(yīng)用程序可能包含JavaBeanTM,JDBCTM對(duì)象,Enterprise Java BeanTM (EJB)和Remote Method Invocation (RMI)對(duì)象,所有的部分都可以非常容易的從JSP網(wǎng)頁(yè)上訪問(wèn)到。例如,一個(gè)JSP網(wǎng)頁(yè)可以包含 HTML代碼所顯示的靜態(tài)文本和圖像,也可以調(diào)用一個(gè)JDBC對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù);當(dāng)網(wǎng)頁(yè)顯示到用戶界面上以后,它將包含靜態(tài)HTML內(nèi)容和從數(shù)據(jù)庫(kù)中找到相應(yīng)的動(dòng)態(tài)信息。
  在JSP網(wǎng)頁(yè)中,要把用戶界面和應(yīng)用程序分開(kāi)可以考慮在網(wǎng)頁(yè)設(shè)計(jì)人員和開(kāi)發(fā)人員之間執(zhí)行一個(gè)非常方便的授權(quán)任務(wù)。它也允許開(kāi)發(fā)人員去建立靈活的代碼,從而非常容易的進(jìn)行更新和重復(fù)利用。由于JSP網(wǎng)頁(yè)能夠根據(jù)需要自動(dòng)進(jìn)行編譯,web設(shè)計(jì)人員無(wú)須重新編譯應(yīng)用程序邏輯就可以改變表述代碼。這也使得JSP與Java servlet(它是JavaSever Pages功能的擴(kuò)展)相比成為一種可以更靈活生成動(dòng)態(tài)web內(nèi)容的方法。

JSP和Servlet
  如果你已經(jīng)用過(guò)Java servlet,那么你就會(huì)知道servlet可以讓你建立動(dòng)態(tài)生成的網(wǎng)頁(yè),而網(wǎng)頁(yè)中包含有從服務(wù)器方的Java對(duì)象中所獲得的數(shù)據(jù)。但是你也得知道servlet 生成網(wǎng)頁(yè)的方法就是在Java類中嵌入HTML標(biāo)簽和表述代碼。這就意味著改變表述代碼需要修改和重新編譯servlet源文件。因?yàn)樵O(shè)計(jì)HTML頁(yè)面的設(shè)計(jì)人員可能與編寫(xiě)servlet代碼的開(kāi)發(fā)人員不是同一個(gè)人,更新基于servlet的web應(yīng)用程序就成了一件非常棘手的事情。

  Enter JavaServer Page是Servlet API的一個(gè)擴(kuò)展。事實(shí)上,JSP網(wǎng)頁(yè)在編譯成servlet之前也可以使用,所以它們也具有servlet的所有優(yōu)勢(shì),包括訪問(wèn)Java API。由于JSP 是嵌入到servlet中關(guān)于應(yīng)用程序的一般表述代碼,所以他們能夠被看成一種“徹底”的servlet。

  JSP網(wǎng)頁(yè)主要提供了一種建立servlet的高水平方法,它還帶來(lái)了其他的優(yōu)點(diǎn)。即使你已經(jīng)為web應(yīng)用程序編寫(xiě)了servlet,使用JSP仍然有很多優(yōu)勢(shì):

  JSP網(wǎng)頁(yè)可以非常容易的與靜態(tài)模板結(jié)合,包括HTML 或XML 片段,以及生成動(dòng)態(tài)內(nèi)容的代碼。

  JSP網(wǎng)頁(yè)可以在被請(qǐng)求的時(shí)候動(dòng)態(tài)的編譯成servlet,所以網(wǎng)頁(yè)的設(shè)計(jì)人員可以非常容易的對(duì)表述代碼進(jìn)行更新。如果需要的話,JSP網(wǎng)頁(yè)還可以進(jìn)行預(yù)編譯。

  為了調(diào)用JavaBean組件,JSP標(biāo)簽可以完全管理這些組件,避免網(wǎng)頁(yè)設(shè)計(jì)人員復(fù)雜化應(yīng)用程序。

  開(kāi)發(fā)人員可以提供定制化的JSP標(biāo)簽庫(kù)。

  網(wǎng)頁(yè)設(shè)計(jì)人員能夠改變和編輯網(wǎng)頁(yè)的固定模板部分而不影響應(yīng)用程序。同樣,開(kāi)發(fā)人員也無(wú)須一個(gè)個(gè)編輯頁(yè)面而只須對(duì)組件進(jìn)行合理的改變。

  通常,JSP允許開(kāi)發(fā)人員向許多網(wǎng)頁(yè)設(shè)計(jì)人員分發(fā)功能性應(yīng)用程序。這些設(shè)計(jì)人員也不必知道Java編程語(yǔ)言或任何servlet代碼,所以他們能夠集中精力去編寫(xiě)HTML代碼,而編程人員就可以集中精力去建立對(duì)象和應(yīng)用程序。

建立JSP頁(yè)面
  粗略看來(lái),JSP網(wǎng)頁(yè)和HTML (或XML)網(wǎng)頁(yè)非常相似——都包含用標(biāo)簽封裝的文本(在“<>”之間被定義)。當(dāng)HTML標(biāo)簽被用戶的瀏覽器處理以顯示網(wǎng)頁(yè)的時(shí)候,JSP標(biāo)簽?zāi)軌蛲ㄟ^(guò)web服務(wù)器的處理來(lái)生成動(dòng)態(tài)內(nèi)容。這些JSP標(biāo)簽?zāi)軌蚨x個(gè)別的操作,比如說(shuō)用一個(gè)方法來(lái)調(diào)用JavaBean,或者包含標(biāo)準(zhǔn)的Java代碼塊(也就是所謂的scriptlet),這些代碼塊能夠在網(wǎng)頁(yè)被訪問(wèn)的時(shí)候被執(zhí)行。

  為了了解它們?nèi)绾问褂?,下面我們介紹了一個(gè)JSP網(wǎng)頁(yè)的簡(jiǎn)單例子,在這個(gè)JSP網(wǎng)頁(yè)中包含了靜態(tài)HTML內(nèi)容和從JavaBean生成的動(dòng)態(tài)數(shù)據(jù)。當(dāng)用戶訪問(wèn)這個(gè)網(wǎng)頁(yè)的時(shí)候,它可以顯示當(dāng)前的日期,并根據(jù)當(dāng)前的時(shí)間增加相應(yīng)的問(wèn)候語(yǔ)(例如“早上好”和“下午好”)。為簡(jiǎn)單起見(jiàn),JSP標(biāo)簽顯示在塊中:

  

  <%@ page language="java" imports="java.util.*" %>

  

Welcome



  

Today is



  

  


      
  • Day: <%= clock.getDayOfMonth() %>

      
  • Year: <%= clock.getYear() %>

      


  <%-- Check for AM or PM --%>

  <%! int time = Calendar.getInstance().get(Calendar.AM_PM); %>

  <%

  if (time == Calendar.AM) {

  %>

  早上好

  <%

  }

  else {

  %>

  下午好

  <%

  }

  %>

  <%@ include file="copyright.html" %>

  

  上面的JSP例子是不是很簡(jiǎn)單?我們?cè)贘SP網(wǎng)頁(yè)中使用了幾個(gè)不同的組件。這些組件包括下面的內(nèi)容:

  JSP action (或JSP標(biāo)簽)使用了多種函數(shù)并擴(kuò)展了JSP的功能。JSP action使用的是一種類似XML的語(yǔ)法,并且被用來(lái)處理JavaBean組件。在上面的例子中,jsp:useBean action初始化了一個(gè)JavaBean ,JavaBean將在網(wǎng)頁(yè)的后面部分被用到:

  

  如果在網(wǎng)頁(yè)中需要獲得和設(shè)置這個(gè)Bean的屬性,另一個(gè)JSP action將被給出,使用的是下面的語(yǔ)法:

  

  

  當(dāng)網(wǎng)頁(yè)被編譯成一個(gè)servlet的時(shí)候,Directive將被JSP引擎處理。Directive被用來(lái)設(shè)置頁(yè)面級(jí)的指令、從外部文件插入數(shù)據(jù)以及制定定制的標(biāo)簽庫(kù)。Directive被定義在<%@ 和 %>之間。 在上面的例子中,Directive定義了頁(yè)面所使用的語(yǔ)言(Java),為了關(guān)聯(lián)Java類需要植入代碼并指定一個(gè)將要插入頁(yè)面底部的HTML文件內(nèi)容:

  <%@ page language=="java" imports=="java.util.*" %>

  <%@ include file=="copyright.html" %>

  聲明與Java中的變量聲明相似,它也是為了后面表達(dá)式或scriptlet的需要來(lái)定義變量。聲明被定義在<%! 和 %>之間。在上面的例子中,“int”聲明并給出了一個(gè)當(dāng)前時(shí)間的相應(yīng)值 (AM 或 PM):

  <%! int time = Calendar.getInstance().get(Calendar.AM_PM); %>

  表達(dá)式可以是變量或常量,它插在由web服務(wù)器所返回的數(shù)據(jù)里,并用<%= 和 %>來(lái)定義。在上面的例子中,表達(dá)式將調(diào)用JavaBean組件并在頁(yè)面中插入結(jié)果數(shù)據(jù):

  <%= clock.getDayOfMonth() %>

  <%= clock.getYear() %>

  Scriptlet將作為一個(gè)Java代碼塊植入JSP頁(yè)面中。Scriptlet代碼被一一插入由頁(yè)面所產(chǎn)生的servlet中,它被定義在<% 和%>之間。上面例子中的scriptlet可以根據(jù)當(dāng)前用戶產(chǎn)生相應(yīng)的時(shí)間和問(wèn)候語(yǔ):

  <%

  if (time == Calendar.AM) {

  %>

  早上好

  <%

  }

  else {

  %>

  下午好

  <%

  }

  %>

  注釋部分和HTML的注釋相似,當(dāng)在執(zhí)行的時(shí)候JSP引擎將去掉對(duì)注釋的解釋。這就意味著JSP注釋并不返回到用戶的瀏覽器中。不象HTML注釋被定義在標(biāo)簽之間,JSP注釋被定義在<%--和 --%>之間。例如:

  <%-- Check for AM or PM --%>

標(biāo)簽:肇慶 北海 保定 紹興 玉樹(shù) 吳忠 廣元 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一個(gè)開(kāi)發(fā)人員眼中的JSP技術(shù)(上)》,本文關(guān)鍵詞  一個(gè),開(kāi)發(fā),人員,眼,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一個(gè)開(kāi)發(fā)人員眼中的JSP技術(shù)(上)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于一個(gè)開(kāi)發(fā)人員眼中的JSP技術(shù)(上)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章