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

首頁 > 編程 > JSP > 正文

JSP入門教程(1)

2024-09-05 00:20:43
字體:
來源:轉載
供稿:網友
JavaServer Pages (JSP)是基于Java的技術,用于創建可支持跨平臺及跨Web服務器的動態網頁。 

JSP可與微軟的Active Server Pages (ASP)相媲美,但JSP使用的是類似于HTML的標記和Java 代碼片段而不是用VBScript。當你使用不提供ASP本地支持的Web服務器(例如 Apache或Netscape服務器)時,你就可以考慮使用JSP了。你雖然也可以為這些服務器弄一個ASP附加軟件模塊,但是太昂貴了?,F在Sun公司并不會因你使用JSP向你收費(雖然將來可能要收),況且用于Solaris、 Linux以及Windows系統的組件都很容易獲得。 

不要把JSP與服務器端的JavaScript語言搞混了。Web服務器自動將通過JSP生成的Java代碼片段轉換成Java 片段(servlets)。 JSP也可自動控制許多功能,如過去用Perl腳本編寫功能程序或像ASP這樣的服務器專用API(應用編程接口)。 

我們馬上就要開始幫助你建立一個使用JSP 技術的網站范例了。 


準備好計算機以使用JSP 

你需要Java2軟件開發工具箱(J2SDK),過去稱之為Java開發工具箱(JDK)、JavaServer 網絡開發工具箱(JSWDK)、Tomcat,或者其它能支持JSP的Web服務器。升陽公司為Windows、Solaris以及 Linux平臺提供免費的J2SDK和JSWDK。 

如果你想在現有的Web服務器上使用JSP,而此服務器本身不支持JSP和Java 代碼片段,可以試用Allaire公司的Jrun。它可以為Netscape的Enterprise Server和Fasttrack Server、微軟的Internet Information Server(IIS)和Personal Web Server(PWS)、Apache以及其他服務器充當Web服務器附件。你也可以使用Apache服務器的Java版,其中包含最新的JSWDK。 

下載并安裝所需的軟件 
目前,版本號為1.2.2-001的J2SDK可下載版以可安裝的歸檔文件形式出現。這個大約20MB的下載量軟件可提供一個徹底的Java開發環境,讓你創造任何基于Java并且利用了而標準核心API的解決方案。其實,你的Web服務器使用JSP的唯一條件是要有Java編輯器。要讓Web服務器知道編輯器的位置,需要JAVA_HOME 環境變量設置為J2SDK安裝目錄。如果你已經在Windows系統中進行了安裝并且接受了默認目錄, 請將“set JAVA_HOME=C:1.2.2”添加到你的“autoexec.bat”文件中,然后重新啟動。 

安裝J2SDK后,下載并安裝JSWDK或者是Tomcat β版,即基于Java的Apache Web服務器的β版。你把JSWDK放在什么地方是無關緊要的,只要你以后能找到它就行。通常,將其放在頂層目錄中,這樣你在替換JSWDK或JSDK時無需刪除另一個軟件。安裝好這個文件后,準備工作已經就緒,你可以開始JSP開發工作了。 

正確地安裝JSWDK后,請運行“startserver”腳本程序,以啟動Web服務器,使其按照默認情況監聽8080端口。你要在啟動服務器之后查看您是否已正確地安裝了此工具,請加載一個JSP樣本文件(http://locahost:8080/examples/jsp/)。如果你能成功地運行這些樣本文件,說明你已經正確地安裝了這個軟件。如果你在用來啟動服務器的控制臺窗口中看到報錯信息,你就需要做些修改。最經常發生的問題是沒有設置或不正確地設置了JAVA_HOME環境變量。要看到當前環境變量設置情況,要請在DOS提示符下鍵入“set”設置。 

開始 
在解釋 JSP語法前,創建一個快捷網頁,顯示目當前的日期和時間,并然后將之其保存為sample.jsp:

<html> 
<head> 
<title>First Page</title> 
</head> 
<body> 
<H3>Today is: 
<%= new java.util.Date() %> 
</H3> 
</body> 
</html>. 

把這個文件以及你所有的HTML 和 JSP 頁面放在JSWDK安裝目錄下的網頁目錄里。你可以從http://localhost:8080/sample.jsp加載此網頁。該網頁首次被訪問時,Web服務器會把JSP編譯成Java代碼片段,這樣你就能夠看到當前的日期和時間了。 

你已經下載、安裝并配置好了開發環境,你可以開始學習JSP語法并創建自己的基于JSP的解決方案了。 

JSP基本語法 
講完安裝問題后,現在進入來討論JSP語法。一個投機取巧的辦法是下載語法卡片。如果你不熟悉Java編程,也許你想看一下Sun的指南 。然而網頁創建者并不需要進行太多的Java開發。除了一些方法調用,在你的JSP網頁里應盡可能少用Java代碼。 

記住以上提示,我們首先來看一看JSP指令和腳本元素,之后我們會解釋JavaBeans和隱含對象。共有五種JSP指令和腳本元素。在JSP 1.0版中,大部分JSP被一個以“<%” 開頭和以“%>”結尾的的標記括在其中。在更新的JSP 1.1規范出臺后,就有了與XML兼容的版本。 

JSP指令和腳本元素 
Directives <%@ directive %> 
Declarations <%! declaration %> 
Expressions <%= expression %> 
Code Fragment/Scriptlet <% code fragment %> 
Comments <%-- comment --%> 



指令 
JSP指令是為JSP引擎而設計的。他們并不直接產生任何可見輸出,而只是告訴引擎如何處理其余JSP頁面。這些指令始終被括在 “<%@ ?%>”標記中。兩個最重要的指令是“pagePage”和“Include”。“Taglib”指令不在討論之列,但是在用JSP1.1創建自定義標記可以使用它。 

幾乎在所有JSP頁面頂部都會看到“Page”指令。盡管不是必須的,但它可以讓你指定: 
到何處查找起支持作用的Java類別: 
<%@ page import="java.util.Date" %>, 

出現Java運行問題時,將網上沖浪者引向何處: 
<%@ page errorPage="errorPage.jsp" %>, 



還有你是否需要管理用戶的會話級信息,這些信息可能來自多個網頁(在下面的JavaBeans一節將對此做進一步講)述: 
<%@ page session="true" %>. 



“Include”指令可以把你的內容分成更多可管理的元素,比如包括一個普通頁面頁眉或頁腳的元素。包含的網頁可以是一個固定的HTML 頁面或更多的JSP內容: 
<%@ include file="filename.jsp" %> 

聲明 
JSP聲明用來讓你定義頁面級變量,以保存信息或定義JSP頁面的其余部分可能需要的支持方法。如果你發現代碼太多,通常最好把它們寫成一個獨立的Java類別。聲明一般都在“<%! ?%>”標記中。一定要以分號(;)結束變量聲明,因為任何內容都必須是有效的Java語句: 
<%! int i=0; %>。 

表達式 
有了JSP表達式,表達式評估結果會被轉換成一個字符串,并且被直接包括在輸出頁面之內。JSP 表達式包含在“<%= ?%>” 標記中,沒有分號,除非在加引號的字符串部分使用分號。 


<%= i %> 
<%= "Hello" %> . 

代碼片段/腳本片段 
代碼片段/腳本片段(Scriptlets) JSP代碼片段或腳本片段是嵌在“<% ?%>”標記中的。這種Java代碼在Web服務器響應請求時就會運行。在腳本片段周圍可能是原始的HTML或XML語句,在這些地方,代碼片段可以使你創建條件執行代碼,或要用到另外一段代碼的代碼。例如,以下的代碼組合使用表達式和代碼片段,顯示H1、H2、H3和H4標記中的字符串“Hello”。代碼片段并不局限于一行源代碼: 

<% for (int i=1; i<=4; i++) { %> 
<H<%=i%>>Hello</H<%=i%>> 
<% } %>. 

注釋 
最后一個主要的JSP元素是嵌入式注釋。盡管你始終可以在文件中加入HTML注釋,但用戶在查看頁面源代碼時會看到這些注釋。如果你不想讓用戶看到它,你就應該將其嵌入“<%-- ?--%>” 標記中: 

<%-- comment for server side only --%>. 

帶JavaBean 的JSP 
雖然你可以把大段的代碼放在腳本片段(scriptlet)內,但是絕大多數的Java代碼屬于可重復使用的名為JavaBea的組件。JavaBean類似于ActiveX控件:他們都能提供常用功能并且可以重復使用。 

JavaBean的值是通過一些屬性獲得的,你可通過這些屬性訪問JavaBean設置。以一個人來打比方,這個人就是一個JavaBean,這個人的名字、身份證號碼以及住址就是其屬性。在JSP網站,你基本上就是通過玩“Connect the beans)”來使你的網站動態化。 

假設JavaBean先于網站被創建出來,你需要做的第一件事就是告訴JSP頁面它將要用到一個“Bean”。你可以用“<jsp:useBean>”標記來做到這一點: 
<jsp:useBean id="localName" class="com.jguru.Person" scope="application" />。 

“<jsp:useBean>”標記要求你用“id”屬性來識鑒別Bean。這里你提供一個名字來JSP頁面其余部分的Bean。除了“id”屬性,你還須告訴網頁面從何處查找Bean,或者它的Java類別名是什么。這種類別屬性提供確 認Bean的功能,其他一些方法也可以做到這一點。最后一個必需的元素是“scope”屬性。有了“scope”屬性的幫助,你就能告訴Bean為單一頁面(默認情況)[scope="page"]、為[scope="request"]請求為會話[scope="session"],或者為整個應用程序[scope="application"]保持留信息。有了會話范圍,你就能非常容易地在JSP網頁面上維護購物車等項目。 

一旦你聲名了一個JavaBean,你就可以訪問它的屬性來定制它。要獲得屬性值,請用“<jsp:getProperty>”標記。有了這個標記,你就能指定將要用到的Bean名稱(從useBean的"id"字段得到)以及你想得到其值的屬性。實際的值被放在輸出中: 
<jsp:getProperty id="localName" property="name" />。 

要改變JavaBean屬性,你必須使用“<jsp:setProperty>”標記。對這個標記,你需要再次識別Bean和屬性,以修改并額外提供新值。如果命名正確,這些值可以從一個已提交的表中直接獲得:參數獲得: 
<jsp:setProperty id="localName" property="*" />; 

可以從一個參數獲得,但你必須直接命名屬性和參數: 
<jsp:setProperty id="localName" property="serialNumber" value="string" /> 

或者直接用一個名字稱和值來設置: <jsp:setProperty id="localName" property="serialNumber" value= <%= expression %> />. 

關于JavaBean 的最后一件事: 為了Web服務器能找到JavaBean,你需要將其類別文件放在一個特殊位置。用JSWDK,最 方便的位置是安裝目錄下的類別目錄,如jswdk-1.0.1classes。 

JSP隱含對象 
與JSP語法相關的最后的元素是一些叫做“隱含對象”的東西。在JSP代碼片段中,你可以利用這些隱含對象與JSP頁面的代碼片段執行環境產生互動。應盡量少訪問這些內置隱含對象。但是,在一某些情況下,訪問隱含對象是可被接受的。若要充分利用隱含對象,就需了解最新的Java Servlet API。 
下表列出可用的隱含對象集合。 

隱含對象說明 
request 客戶端請求,包括從GET/POST請求傳遞過來的參數 
response 網頁傳回客戶端的反應 
pageContext 在此管理網頁屬性 
session 與請求關聯的會話 
application 代碼片段的運行環境 
out 傳送響應的輸出流 
config 代碼片段配置對象 
page JSP網頁本身 
exception 有錯的網頁中未被捕獲的例外 



這些都是用來做什么的,你又如何來使用它們呢?基本上說,在你的腳本片段里,你可以用它們進入執行JSP代碼的代碼片段。用不著深入了解太多的Servlet API細節,我們來看看能用它們來做到的某些事情: 


你可以不用表達式,直接進入“Out”隱含對象,將某些內容輸出到響應中: 
<% out.println("Hello"); %>。 
用不著把一個參數直接送到JavaBean,你可以從請求對象獲取參數值: 
<% String name=request.getParameter("name"); out.println(name); %>. 

在你用JSP進行開發的過程中,進行更多的開發的過程中,如果創建了JavaBeans或發現JSP文件中加入了太多的Java源代碼,你就需要創建起支持作用的Java分類(class)了,它可以協助你重復利用源代碼并減少JSP網頁編譯時間。當你需要創建Java分類文件時,你必須: 


將JDSWK installationin目錄添加到PATH中。在autoexec.bat文件PATH行的末尾,加入“C:1.2.2/bin”。
用這個命令將JAR文件復制到“jrelibext:”目錄中: copy c:jswdk-1.0.1libservlet.jar c:jdk1.2.2jrelibext. 

創建一個JSP網站 
現在該是把所有這些JSP語法派上用場的時候了。我們將創建一個網頁,它有一個輸入表單,可以使用戶輸入一個股票代號以獲得出當前股價(有20分鐘)。如果輸入有誤,則顯示報錯網頁。 

quote.jsp 
首先,用 這個代碼 創建一個quote.jsp網頁并將其保存在JSWDK安裝目錄下的網頁目錄中。大多數的網頁是標準的HTML,其間散布著JSP代碼。第六行是一個網頁指示,表示將把所有錯誤發送到“errorPage.jsp”文中。第13到15行是一個腳本片段,主要說明只有提供“符號”參數才會顯示表格。“If”代碼段在32到34行結束。第17行定義了要用的JavaBean,第18行從參數加載JavaBean的符號屬性。第27行到29行顯示Bean的屬性。除了"if "代碼段,實際上并不涉及其它Java代碼。 

errorPage.jsp 
下一步,將下列JSP源代碼保存到網頁目錄中的“errorPage.jsp”文件中。“這是一個錯誤網頁”的提示為第一行,它將isErrorPage網頁提示屬性設置為真。上一頁說了明錯誤網頁的位置,本頁則說明這就是錯誤網頁。其它JSP文件中的JSP專用代碼只有訪問隱含例外對象才用到。網頁只顯示其值: 

<%@ page isErrorPage="true" %> 

<html> 
<head> 
<title>Error Page</title> 
</head> 
<body> 

<h1>Our Error Page</h1></font> 

<!-- Print Exception --> 
We got ourselves an exception: 
<%= exception %> 
<a href="quote.jsp">Restart</a> 
</body> 
</html>。 

Quotes.java 
Quotes JavaBean 利用Yahoo資源來獲得股票價格。需要將此 資源保存到JSWDK安裝目錄下“classescomjguru”目錄中的“quotes.java”文件中。請在此用JSDK中的Javac編輯器來編輯它。 


你的第一個JSP網頁。 
創建了這兩個JSP文件,建立了JavaBean資源文件并編輯了它后,你就可以從http://localhost:8080/quote.jsp加載“quote.jsp”文件以查看結果,假設你沒有更改JSWDK安裝設置,轉而使用別的端口。這個網頁當然能做得更漂亮,但是它已實現了需要實現的功能,并且很好地展示了JSP的功能
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区国产视频| 亚洲国产又黄又爽女人高潮的| 国产一区香蕉久久| 国产精品免费电影| www.国产一区| 日韩av影视综合网| 亚洲午夜av电影| 成人久久久久爱| 久久久999精品免费| 欧美成人免费大片| 久久久久免费视频| 国产欧美一区二区三区久久| 国产成人精品a视频一区www| 亚洲日本欧美中文幕| 久久频这里精品99香蕉| 国产精品久久久久久网站| 97视频人免费观看| 日本不卡高字幕在线2019| 久久久免费在线观看| 国产精品久久久久久亚洲影视| 欧美激情中文字幕乱码免费| 久久精品中文字幕免费mv| 亚洲自拍小视频免费观看| 久久久亚洲福利精品午夜| 日韩精品日韩在线观看| 91精品国产综合久久久久久蜜臀| 伊人青青综合网站| 日韩视频永久免费观看| 欧美日韩国产va另类| 久久97精品久久久久久久不卡| 久久久久久中文字幕| 国产精品欧美日韩久久| 亚洲va欧美va国产综合剧情| 国产亚洲精品久久久优势| 国产精品一区二区三区毛片淫片| 欧美在线视频一区| 岛国av一区二区三区| 精品亚洲永久免费精品| 中文字幕少妇一区二区三区| 国产午夜精品全部视频在线播放| 国产一区香蕉久久| 中文字幕日韩精品在线| 国产精品欧美久久久| 日本精品中文字幕| 成人国产精品久久久| 国产一区二区三区在线免费观看| xxxxxxxxx欧美| 国产福利精品视频| 欧美片一区二区三区| 亚洲区一区二区| 国产欧美va欧美va香蕉在| 45www国产精品网站| 国产精品福利小视频| 国产精品一区二区av影院萌芽| 国内偷自视频区视频综合| 久久夜色撩人精品| 91精品中国老女人| 国产精品入口日韩视频大尺度| 日韩大陆欧美高清视频区| 97精品久久久中文字幕免费| 亚洲精品720p| 亚洲女成人图区| 亚洲欧美日韩精品久久| 日韩成人在线视频网站| 亚洲18私人小影院| 亚洲欧美一区二区三区在线| 亚洲精品国产精品自产a区红杏吧| 日韩欧美国产免费播放| 久久久精品一区二区三区| 日本免费久久高清视频| 欧美大片欧美激情性色a∨久久| 国产精品自产拍在线观看中文| 亚洲精品国精品久久99热一| 夜夜嗨av一区二区三区四区| 久久综合久中文字幕青草| 美女精品视频一区| 国产一区二区三区在线播放免费观看| 姬川优奈aav一区二区| 国内精品久久久久伊人av| 欧美小视频在线观看| 亚洲性生活视频| 2019国产精品自在线拍国产不卡| www欧美日韩| 成人亚洲综合色就1024| 欧美专区第一页| 欧美日韩国产精品一区二区不卡中文| 亚洲精品wwwww| 久久久天堂国产精品女人| 性亚洲最疯狂xxxx高清| 亚洲丝袜av一区| 亚洲黄色在线观看| 久久人人爽人人爽人人片av高清| 精品女同一区二区三区在线播放| 米奇精品一区二区三区在线观看| 色综合五月天导航| 欧美国产在线电影| 91网站在线看| 成人欧美在线观看| 成人午夜激情免费视频| 日韩在线高清视频| 亚洲free性xxxx护士hd| 亚洲成人av片| 国产成人av网| 亚洲美女精品成人在线视频| 欧美一级视频在线观看| 国产精品igao视频| 亚洲free性xxxx护士hd| 69久久夜色精品国产7777| 成人久久久久爱| 综合久久五月天| 久久久亚洲福利精品午夜| 国产亚洲激情在线| 亚洲精品欧美日韩专区| 国产精品自产拍高潮在线观看| 久久久久久久色| 午夜精品久久久久久久久久久久久| 91视频免费网站| 精品在线欧美视频| 欧美高清视频一区二区| 国产欧美婷婷中文| 91夜夜未满十八勿入爽爽影院| 在线观看精品自拍私拍| 国产精品入口免费视| 亚洲深夜福利网站| 日韩精品中文字幕在线| 欧美日韩另类在线| 精品国产自在精品国产浪潮| 最近2019年中文视频免费在线观看| 欧美中文字幕在线播放| 亚洲石原莉奈一区二区在线观看| 精品视频9999| 亚洲的天堂在线中文字幕| 亚洲自拍欧美色图| 国产精品a久久久久久| 日韩av在线网| 欧美激情视频给我| 日韩久久精品电影| 精品激情国产视频| 日韩电影在线观看永久视频免费网站| 国产乱肥老妇国产一区二| 午夜精品美女自拍福到在线| 久久99热精品| 亚洲欧美国产精品专区久久| 欧美精品在线视频观看| 夜夜嗨av一区二区三区四区| 亚洲日本成人女熟在线观看| 91极品女神在线| 国产精品日韩电影| 亚洲自拍小视频免费观看| 久久视频免费观看| 国产一区二区视频在线观看| 久久国产精品久久精品| 亚洲一区二区三区乱码aⅴ| 国产成人精品午夜| 国产亚洲精品久久久久久| 日韩在线观看高清| 亚洲综合在线做性| 亚洲欧美色婷婷| 在线播放国产一区中文字幕剧情欧美| 中文字幕亚洲综合久久筱田步美| 亚洲男人天堂九九视频| 久久久精品电影| 精品日韩美女的视频高清| 亚洲视频在线观看|