亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP內幕

2024-09-05 00:19:26
字體:
來源:轉載
供稿:網友

jsp內幕

    javaserver pagestm (jsp)技術為創建顯示動態生成內容的web頁面提供了一個簡捷而快速的方法。jsp技術的設計目的是使得構造基于web的應用程序更加容易和快捷,而這些應用程序能夠與各種web服務器,應用服務器,瀏覽器和開發工具共同工作。
開發基于web的應用程序:背景

  在萬維網短暫的歷史中,它已經從一個大部分顯示靜態信息的網絡演化到對股票進行交易和進行購書操作的一個基礎設施。在各種各樣的應用程序中,對于可能使用的基于web的客戶端,看上去沒有任何限制。

  基于瀏覽器客戶端的應用程序比傳統的基于客戶機/服務器的應用程序有幾個好處。這些好處包括幾乎沒有限制的客戶端訪問和極其簡化的應用程序部署和管理(要更新一個應用程序,管理人員只需要更改一個基于服務器的程序,而不是成千上萬的安裝在客戶端的應用程序)。這樣,軟件工業正迅速地向建造基于瀏覽器客戶端的多層次應用程序邁進。

  這些快速增長的精巧的基于web的應用程序要求開發技術上的改進。靜態html對于顯示相對靜態的內容是不錯的選擇;新的挑戰在于創建交互的基于web的應用程序,在這些程序中,頁面的內容是基于用戶的請求或者系統的狀態,而不是預先定義的文字。

  對于這個問題的一個早期解決方案是使用cgi-bin接口;開發人員編寫與接口相關的單獨的程序,以及基于web的應用程序,后者通過web服務器來調用前者。這個方案有著嚴重的擴展性問題??每個新的cgi要求在服務器上新增一個進程。如果多個用戶并發地訪問該程序,這些進程將消耗該web服務器所有的可用資源,并且系統性能降低到極其低下的地步。

  某些web服務器供應商已經嘗試通過為他們的服務器提供“插件”和api來簡化web應用程序的開發。這些解決方案是與特定的web服務器相關的,不能解決跨多個供應商的解決方案的問題。例如,微軟的active server pagestm(asp) 技術使得在web頁面上創建動態內容更加容易,但是也只能工作在微軟的iis和personal web server上。

  還存在其他的解決方案,但是都不能使一個普通的頁面設計者能夠輕易地掌握。例如,象java servlets這樣的技術就可以使得用java語言編寫交互的應用程序的服務器端的代碼變得容易。一個java servlets就是一個基于java技術的運行在服務器端的程序(與applet不同,后者運行在瀏覽器端)。開發人員能夠編寫出這樣的servlet,以接收來自web瀏覽器的http請求,動態地生成響應(可能要查詢數據庫來完成這項請求),然后發送包含html或xml文檔的響應到瀏覽器。

  采用這種方法,整個網頁必須都在java servlet中制作。如果開發人員或者web管理人員想要調整頁面顯示,就不得不編輯并重新編譯該java servlet,即使在邏輯上已經能夠運行了。采用這種方法,生成帶有動態內容的頁面仍然需要應用程序的開發技巧。

  很顯然,目前所需要的是一個業界范圍內的創建動態內容頁面的解決方案。這個方案將解決當前方案所受到的限制,即:

   能夠在任何web或應用程序服務器上運行
   將應用程序邏輯和頁面顯示分離
   能夠快速地開發和測試
   簡化開發基于web的交互式應用程序的過程
  javaserver pages (jsp)技術就是被設計用來滿足這樣的要求的。jsp規范是web服務器、應用服務器、交易系統、以及開發工具供應商間廣泛合作的結果。太陽微系統公司(sun microsystems inc.)開發出這個規范來整合和平衡已經存在的對java編程環境(例如,java servlet和javabeanstm)進行支持的技術和工具。其結果是產生了一種新的、開發基于web應用程序的方法,給予使用基于組件應用邏輯的頁面設計者以強大的功能。

web應用開發的javaserver pages技術方法

  在開發jsp規范的過程中,太陽微系統公司(sun microsystems inc.)與許許多多主要的web服務器、應用服務器和開發工具供應商,以及各種各樣富有經驗的開發團體進行合作。其結果是找到了一種為應用和頁面開發人員平衡了可移植性和易用性的開發方法。

  jsp技術在多個方面加速了動態web頁面的開發:

  將內容的生成和顯示進行分離

  使用jsp技術,web頁面開發人員可以使用html或者xml標識來設計和格式化最終頁面。使用jsp標識或者小腳本來生成頁面上的動態內容(內容是根據請求來變化的,例如請求帳戶信息或者特定的一瓶酒的價格)。生成內容的邏輯被封裝在標識和javabeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。如果核心邏輯被封裝在標識和beans中,那么其他人,如web管理人員和頁面設計者,能夠編輯和使用jsp頁面,而不影響內容的生成。
在服務器端,jsp引擎解釋jsp標識和小腳本,生成所請求的內容(例如,通過訪問javabeans組件,使用jdbctm技術訪問數據庫,或者包含文件),并且將結果以html(或者xml)頁面的形式發送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于html的web瀏覽器的完全可用性。

  強調可重用的組件

  絕大多數jsp頁面依賴于可重用的,跨平臺的組件(javabeans或者enterprise javabeanstm組件)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團體所使用?;诮M件的方法加速了總體開發過程,并且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。

  采用標識簡化頁面開發

  web頁面開發人員不會都是熟悉腳本語言的編程人員。javaserver page技術封裝了許多功能,這些功能是在易用的、與jsp相關的xml標識中進行動態內容生成所需要的。標準的jsp標識能夠訪問和實例化javabeans組件,設置或者檢索組件屬性,下載applet,以及執行用其他方法更難于編碼和耗時的功能。
  通過開發定制化標識庫,jsp技術是可以擴展的。今后,第三方開發人員和其他人員可以為常用功能創建自己的標識庫。這使得web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。

  jsp技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,并且擴展到能夠支持企業級的分布式應用。作為采用java技術家族的一部分,以及java 2(企業版體系結構)的一個組成部分,jsp技術能夠支持高度復雜的基于web的應用。
  由于jsp頁面的內置腳本語言是基于java編程語言的,而且所有的jsp頁面都被編譯成為java servlet,jsp頁面就具有java技術的所有好處,包括健壯的存儲管理和安全性。
  作為java平臺的一部分,jsp擁有java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應商將jsp支持添加到他們的產品中,您可以使用自己所選擇的服務器和工具,更改工具或服務器并不影響當前的應用。
當與java 2平臺,企業版(j2ee)和enterprise javabean技術整合時,jsp頁面將提供企業級的擴展性和性能,這對于在虛擬企業中部署基于web的應用是必需的。


  jsp頁面看上去象什么?
  jsp頁面看上去象標準的html和xml頁面,并附帶有jsp引擎能夠處理和抽取的額外元件。通常,jsp元件創建插入最終頁面的文本。

  使用示例是描述jsp技術的最好方法。下面的jsp頁面非常簡單;它打印帶年、當月的天,并且根據時間使用"good morning"和"good afternoon"對您表示歡迎。

  該頁面結合了普通的html和大量jsp元件組成。

對時鐘javabeans組件的調用
對一個外部文件的包含(用于著作權信息)
jsp表達式和腳本
<html>
<%@ page language=="java" imports=="com.wombat.jsp.*" %>
<h1>welcome</h1>

<p>today is </p>
<jsp:usebean id=="clock" class=="calendar.jspcalendar" />
<ul>
<li>day: <%==clock.getdayofmonth() %>
<li>year: <%==clock.getyear() %>
</ul>

<% if (calendar.getinstance().get(calendar.am_pm) ==== calendar.am) { %>
good morning
<% } else { %>
good afternoon
<% } %>
<%@ include file=="copyright.html" %>

</html>

這個頁面包含下面這些組件:

  一個jsp指示將信息傳送到jsp引擎。在這個示例中,第一行指出從該頁面即將訪問的一些java編程語言的擴展的位置。指示被設置在<%@和%>標記中。
  固定模板數據:所有jsp引擎不能識別的標識將隨結果頁面發送。通常,這些標識是html或者xml標識。在上面的例子中包括無序列表(ul)和h1標識。
  jsp動作或者標識:這些通常作為標準或定制標識被實現,并且具有xml標識的語法。在這個例子中,jsp:usebean標識實例化服務器端的clock javabean。
  一個表達式:jsp引擎計算在<%==和%>標記間的所有東西。在上面的列表項中,時鐘組件(clock)的day和year屬性值作為字符串返回,并且作為輸出插入到jsp文件中。在上面的例子中,第一個列表項是日子,第二個是年份。
  小腳本是執行不為標識所支持的功能或者將所有的東西捆綁在一起的小的腳本。jsp 1.0軟件的內置腳本語言是基于java語言的。在上面示例中的小腳本確定現在是上午還是下午,并且據此來歡迎用戶。
  這個例子可能小了一點,但是技術上卻不是。從業務上可以將關鍵的處理封裝在服務器端的組件中,并且人員能夠使用熟悉的語法和工具很容易地訪問這些信息?;趈ava的小腳本提供了一種靈活的方式以執行其他功能,而不要求擴展的腳本語言。頁面作為整體是可讀和可理解的,這就使得查找或者預防問題以及共享工作更加容易。
  這些組件中的一部分在下面有更詳細的描述。

  jsp指示

  jsp頁面使用jsp指示將指令傳遞到jsp引擎。這其中包括:

   jsp頁面指示傳遞頁面相關的信息,例如緩沖區和線程信息或者出錯處理。
   語言指示指定腳本語言,以及所有的擴展。
   包含指示(在上面例子中有顯示)可以被用來在頁面中包含一個外部的文檔。一個好的例子是著作權文檔或者公司信息文檔??在一個集中地點保存該文檔并且在頁面中包含比在各個jsp頁面中更新要容易些。當然,被包含的文件也可能是另一個jsp文件。
   標識庫指示指出頁面可以調用的一個客戶標識庫。

  jsp標識

  絕大多數jsp處理將通過與jsp相關的基于xml的標識完成。jsp 1.0中包含大量標準標識,這些標識作為核心標識包括:

  jsp:usebean 這個標識聲明對一個javabeans組件實例的使用。如果該組件的實例不存在,javabeans組件將實例化和注冊這個標識。
  jsp:setproperty 這個標識在組件的實例中設置一個屬性的值。

  jsp:getproperty 這個標識獲取一個組件的實例的屬性值,將其轉化為字符串,并且將它放入隱含對象"out"中。

  jsp:include

  jsp:forward


  1.1版本將包含更多的標準標識。

  標識的好處在于它們易于在應用程序間使用和共享?;跇俗R的語法的真正威力來自于客戶標識庫的開發,使得工具供應商或其他人員能夠為特定的要求創建和分派標識。

  腳本元件

  jsp頁面可以在頁面中包含小的腳本,稱之為小腳本(scriptlets)。小腳本是一個代碼片段,在請求的處理過程中被執行。小腳本可以和頁面中的靜態元件組合(正如上面的例子一樣)起來創建動態生成的頁面。

  腳本在<%和%>標志中被描述。在這對標志中的所有東西都會被腳本描述語言引擎執行,在我們的例子中是主機上的java虛擬機。

  jsp規范支持所有常用的腳本元件,包括表達式和聲明。

  jsp頁面的應用模型

  jsp頁面由jsp引擎執行,引擎安裝在web服務器或者使用jsp的應用服務器上。jsp引擎接受客戶端對jsp頁面的請求,并且生成jsp頁面給客戶端的響應。

  jsp頁面通常被編譯成為java servlet。后者是一個標準的java擴展,在www.java.sun.com站點有更詳細的描述。頁面開發人員能夠訪問全部的java應用環境,以利用java技術的擴展性和可移植性。

  當jsp頁面第一次被調用時,如果它還不存在,就會被編譯成為一個java servlet類,并且存儲在服務器的內存中。這使得在接下來的對該頁面的調用有非??斓捻憫#ㄟ@避免了cgi-bin為每個http請求生成一個新的進程的問題,或是服務器端引用所引起的運行時語法分析。)

  jsp頁面可以包含在多種不同的應用體系結構或者模型中。jsp頁面可以用于由不同協議、組件和格式所組成的聯合體中。下面的小節描述了一些可能發生的情況。

  一個簡單應用

  在一個簡單實現中,瀏覽器直接調用jsp頁面,jsp頁面自己生成被請求的內容(可能會調用jdbc直接從數據庫中獲取信息)。jsp頁面能夠調用jdbc或者java blendtm組件來生成結果,并且創建標準的html,作為結果發送回瀏覽器。

  這個模型基本上用jsp頁面(編譯成為java servlet)代替了cgi-bin概念。這個方法擁有下列優點:

   簡單而快速地編程
   頁面作者可以很容易地根據請求和資源狀態生成動態內容
  這個結構在許多應用上工作良好,但不能擴展到大量的基于web的并發客戶訪問稀少的企業資源,因為每個客戶必須建立或者共享一個到可用內容資源的連接。例如,如果jsp頁面訪問數據庫,可能生成許多到數據庫的連接,這將影響到數據庫的性能。

  使用java servlet的一個靈活的應用

  在另一種可能的配置中,基于web的客戶機可能直接對java servlet進行請求,servlet生成動態內容,將結果捆綁到一個結果對象中并且調用jsp頁面。jsp頁面從該對象中訪問動態內容,并且將結果(例如html)發送回瀏覽器。

  這個方法創建了更多的可以為應用程序間共享的可重用的組件,并且可以作為更大的應用的一部分完成。但是,在處理如數據庫一樣的企業資源的連接時,還是存在擴展性問題。

  采用企業級javabean技術的可擴展處理

  jsp頁面也可以作為企業級javabean(ejb)體系結構中的一個中間層。在這種情況下,jsp頁面和后端資源通過ejb組件進行交互。

  ejb組件管理對后端資源的訪問,從而為眾多的并發使用者提供可擴展的性能。對于電子商務或者其他應用,ejb管理交易和潛在的安全性。這將簡化jsp頁面。這個模型將為java 2企業版(j2ee)平臺所支持。

   jsp頁面與xml技術的集成

  jsp頁面可以用于生成xml和html頁面。

  對于簡單的xml生成,開發人員可以包含xml標識和jsp頁面的靜態模板部分。對于動態xml生成,使用基于服務器的對象和生成xml輸出的客戶化標識。

  jsp頁面與xml工具不是不兼容的。盡管sun在設計jsp規范時使得jsp頁面即使手工操作對于創作者而言也是很容易的,jsp規范同時也提供了一個機制以便于創建任意jsp頁面的一個xml版本。通過這種方法,xml工具能夠創作和操作jsp頁面。

  通過將jsp標識和元件轉換為與xml兼容的對等物,可以使用基于xml的工具來操作jsp頁面。例如,腳本可以被包含在<%和%>之中,或者基于xml標志的<jsp:scriptlet>和</jsp:scriptlet>中。事實上,經過下面這樣簡單的幾步將jsp頁面轉換為xml頁面是可能的,這些步驟包括:

  增加一個jsp根元件

  將元件和指示轉換為xml兼容的對等物
  為頁面上其他的元件(通常非jsp)創建cdata元件
  通過這個與xml兼容的方法,創建html頁面的設計者仍然擁有一個快速創建動態web頁面的易用環境,同時,基于xml的工具和服務可以與jsp頁面集成并且和jsp兼容的服務器一起工作。

jsp技術的未來

  jsp技術被設計為一個開放的,可擴展的建立動態web頁面的標準。開發人員可以使用jsp頁面來創建可移植的web應用,在不同的web和應用服務器上為不同的場合所運行,而不論采用什么適合本身場合和需要的創建工具。

  通過與業界領袖的合作,sun保證jsp規范是開放的和可移植的??梢允褂萌魏慰蛻魴C和服務器平臺,在任何地方編寫和部署它們。將來,工具供應商和其他廠商將通過為專門的功能提供客戶化的標識庫而擴展平臺的功能。

  jsp規范的1.0版本是通向動態web頁面生成的一個開放的工業標準方法的第一步。1.0版本通過一個核心標識集、隱含對象以及開始創建動態web頁面所需的基本功能構成了該方法的基礎。已經有幾個web服務器,應用服務器和開發工具供應商正在為他們的產品添加jsp1.0的支持,這樣在業界已經擁有了最初的、立即的支持。

  在1999晚些時候將完成的1.1版本,通過更多的xml支持、客戶化標識、以及與j2ee的集成而擴展這個版本。并且供應商們可能會有選擇地擴展和擴充在jsp規范中基本的、必需的功能。jsp引擎能夠強有力地支持多種腳本語言和對象模型。在業界擴充和使用jsp技術能力的同時,也向sun承諾將保證jsp技術保持平臺和服務器間固有的可移植性。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
68精品久久久久久欧美| 欧美第一淫aaasss性| 国产精品成人av性教育| 丝袜亚洲另类欧美重口| 国产ts人妖一区二区三区| 国内偷自视频区视频综合| 日韩精品福利在线| 欧美另类在线播放| 午夜精品一区二区三区在线| 成人激情在线播放| 成人免费淫片视频软件| 91po在线观看91精品国产性色| 亚洲一区av在线播放| 国产精品日韩欧美综合| 亚洲欧美日韩天堂| xxxx欧美18另类的高清| 欧美日韩不卡合集视频| 亚洲开心激情网| 亲子乱一区二区三区电影| 国产精品777| 国产丝袜一区视频在线观看| 久久九九亚洲综合| 欧美自拍大量在线观看| 欧美性xxxx| 国色天香2019中文字幕在线观看| 久久精品亚洲94久久精品| 美乳少妇欧美精品| 亚洲国产精品久久精品怡红院| 日韩中文字幕免费看| 人体精品一二三区| 国内精品小视频| 亚洲а∨天堂久久精品9966| 精品中文字幕久久久久久| 欧美一乱一性一交一视频| 久久99亚洲热视| 精品视频偷偷看在线观看| 日韩黄色在线免费观看| 国产精品久久久久久一区二区| 久久精品国产亚洲精品2020| 国产亚洲精品成人av久久ww| 亚洲成人网久久久| 亚洲精品色婷婷福利天堂| 欧美午夜xxx| 亚洲精品日韩丝袜精品| 97精品久久久中文字幕免费| 国产日本欧美一区二区三区在线| 国产精品久久久久久久久久小说| 亚洲精品一区二区网址| 欧美一区二区三区四区在线| 91精品国产91久久久久久吃药| 日韩久久精品电影| 久久久精品国产网站| 国产伦精品免费视频| 亚洲视频999| 国产精品99久久久久久久久| 国产精品久久久久久婷婷天堂| 日韩av免费观影| 久久久极品av| 成人欧美一区二区三区在线| 国产午夜精品视频| 国产精品大片wwwwww| 国产精品一二三在线| 91久久精品日日躁夜夜躁国产| 综合网日日天干夜夜久久| 中文字幕亚洲一区在线观看| 国产成+人+综合+亚洲欧洲| 日本不卡视频在线播放| 最近2019年中文视频免费在线观看| 一区二区三区四区视频| 亚洲黄色av女优在线观看| 亚洲欧美日韩区| 欧美成人精品影院| 国产精品自拍小视频| 日韩中文视频免费在线观看| 92看片淫黄大片欧美看国产片| 91精品国产沙发| 欧美黑人一级爽快片淫片高清| 精品久久久久久国产91| 国产精品专区一| 成人免费网站在线看| 亚洲视频在线观看视频| 97超级碰碰人国产在线观看| 国产精品第二页| 国产日产久久高清欧美一区| 欧美黑人狂野猛交老妇| 国产精品高清网站| 欧美成人激情视频免费观看| 亚洲加勒比久久88色综合| 日本中文字幕成人| 一区二区欧美在线| 亚洲亚裔videos黑人hd| 精品美女国产在线| 欧美视频免费在线| 亚洲成人久久久久| 一区二区三区回区在观看免费视频| 亚洲国产又黄又爽女人高潮的| 久久久av网站| 久久成人国产精品| 91精品国产91久久久久久久久| 国产精品高潮呻吟久久av野狼| 日韩精品视频在线免费观看| 亚洲免费电影在线观看| 好吊成人免视频| 国产精品91一区| 91精品在线影院| 国产精品∨欧美精品v日韩精品| 国产日韩欧美中文| 国产精品丝袜一区二区三区| 国产成人精品一区二区在线| 91夜夜未满十八勿入爽爽影院| 91色中文字幕| 亚洲精品美女久久久久| 国产午夜精品一区理论片飘花| 国产精品视频网站| 国产午夜精品理论片a级探花| 欧美日韩激情视频8区| 亚洲片在线观看| 国产日韩在线免费| 亚洲欧美成人网| 亚洲一区中文字幕在线观看| 黄网站色欧美视频| 中文字幕欧美日韩va免费视频| 国产香蕉一区二区三区在线视频| 国产精品视频999| 欧美精品日韩www.p站| 国产精品日韩专区| 亚洲国内精品视频| 中文字幕日韩高清| 日韩av电影在线网| 深夜成人在线观看| 欧美性猛交xxxx富婆| 96pao国产成视频永久免费| 91精品久久久久久久| 日韩在线视频线视频免费网站| 岛国av一区二区在线在线观看| 国产精品久久久久免费a∨| 日韩av在线免播放器| 日韩免费在线免费观看| 国产精品久久久久久久久久久不卡| 国产日韩精品在线| 日韩视频在线一区| 国产盗摄xxxx视频xxx69| 日韩亚洲精品视频| 亚洲自拍偷拍网址| 国产精品极品尤物在线观看| 久久99精品视频一区97| 国产精品91久久| 91久久中文字幕| 青草热久免费精品视频| 91免费看片在线| 亚洲天堂精品在线| 国产主播喷水一区二区| 亚洲第一av网| 亚洲欧美综合区自拍另类| 亚洲美女自拍视频| 日韩精品在线视频美女| 欧美日韩成人在线观看| 亚洲永久在线观看| 久久久久久久久久久国产| 欧美韩日一区二区| 久久69精品久久久久久国产越南| 成人a免费视频| 亚洲成色www8888| 黑人与娇小精品av专区|