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

首頁 > 編程 > JSP > 正文

JSP簡明教程

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

一、 什么是JSP 

JSP(JavaServer Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準,其網址為http://www.javasoft.com/products/jsp。在傳統的網頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁(*.jsp)。Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序片段,然后將執行結果以HTML格式返回給客戶。程序片段可以操作數據庫、重新定向網頁以及發送 email 等等,這就是建立動態網站所需要的功能。所有程序操作都在服務器端執行,網絡上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求最低,可以實現無Plugin,無ActiveX,無Java Applet,甚至無Frame。 
本文將介紹利用JSP技術開發動態網頁的方法,還將簡要分析JSP技術和 Microsoft 公司的 ASP 技術的不同之處。 

二、 如何安裝和啟動 

為了實驗JSP技術,首先需要建立運行環境,這個過程相當簡單: 
1、在 http://java.sun.com/jdk/處下載JDK(Java 2 SDK、Standard Edition、v 1.2.2)。 
2、在http://java.sun.com/products/jsp/處下載JSWDK(JavaServer Web Development Kit 1.0.1)。Linux用戶可以在http://jakarta.apache.org/處下載Tomcat 3.0。 

3、安裝 

以Windows NT環境為例,JDK的安裝是首先運行下載得到的jdk1_2_2-win.exe,然后修改系統環境參數,在PATH參數中加入[x:]jdk1.2.2in以及增加新的環境參數 CLASSPATH=[x:]jdk1.2.2lib ools.jar,其中[x:]是安裝JDK的硬盤符(c:、d: 等)。 JSWDK的安裝僅需將jswdk1_0_1-win.zip帶目錄釋放到硬盤根目錄下(c:、d: 等),然后就可以在硬盤上找到jswdk-1.0.1目錄。將來如果不想保留JSWDK,刪除這個目錄就可以了,沒有任何系統文件和注冊表遺留問題。更詳細的安裝過程以及Solaris/Unix和Linux下JDK、Tomcat的安裝可以參考下載得到的文件包中的安裝說明。 

4、啟動 

以Windows NT環境為例,在jswdk-1.0.1目錄下執行startserver.bat,就可啟動JSWDK中一個支持JSP網頁技術的Web服務器。為了不與現有的Web服務器(例如IIS、PWS等)沖突,JSWDK的Web服務器使用了8080端口。在瀏覽器的地址欄中鍵入http://localhost:8080或者http://127.0.0.1:8080后,如果能看到 JSWDK 的歡迎頁就說明JSP實驗環境已經建成,可進入下一步實驗。要關閉Web服務器則運行stopserver.bat。 

三、 JSP簡單示例 
JSWDK中包含的Web服務器的文檔目錄在缺省狀態下為jswdk-1.0.1webpages,主文檔在缺省狀態下為index.html和index.jsp。也就是說訪問http://localhost:8080等于訪問jswdk-1.0.1webpagesindex.html。 
用文本編輯器,如Windows中的記事本(Notepad),創建一個文本文件hi.jsp,保存在jswdk-1.0.1webpages目錄下,其內容如下: 


<html> 

<head> 

<title>Hi-JSP實驗</title> 

</head> 

<body> 

<% 

String Msg = "This JSP test."; 

out.print("Hello World!"); 

%> 

<h2><%=Msg%></h2> 

</body> 

</html> 


在瀏覽器的地址欄中鍵入http://localhost:8080/hi.jsp,JSWDK中的Web服務器會執行JSP 文件中用〈%以及%>括起來的Java程序語句,其中out.print是將文字輸出到網頁,語句〈%= 變量 | 表達式%>的作用是將Java Scriptlet中變量或表達式的值輸出到網頁. 
將變量Msg賦值為中文字符串,用〈%= %>輸出,或者用out.print輸出中文字符串,則在英文版NT4及Redhat 6.1下實驗運行結果正常,而在中文NT 4.0和中文98下,則反而會出現亂碼。 

四、 統一的網站界面 

JSP支持服務器端的文件包含,即可以在一個JSP文件中插入多個其他文件,用來實現統一的網站界面。修改上述hi.jsp并另存為mypage.jsp: 



<%@ include file="top.htm" %> 

<% 

String Msg = "This JSP test."; 

out.print("Hello World!"); 

%> 

<h2><%=Msg%></h2> 

<%@ include file="bot.htm" %> 


用可視化HTML編輯器,例如FrontPage、Dreamweave等設計網站的框架結構,將設計好的框架結構文件分割成兩個部分,上面一半保存為top.htm, 下面一半保存為bot.htm,代碼如下面所示: 



<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

<title>我的主頁〈/title> 

</head> 

<body> 

<table border="0" width="100%" cellpadding="4" cellspacing="0" align="center"> 

<tr> 

<td width="100%" colspan="2" bgcolor="#837ED1" align="center"><font face="隸書" color="#FFFF00" size=5>主頁標題</font> 

</td> 

</tr> 

<tr> 

<td bgcolor="#837ED1" width="15%" valign="top" align="center"><br> 

<font color="#FFFFFF">選項</font><p><font color="#FFFFFF">選項</font></p> 

<p><font color="#FFFFFF">選項</font></p> 

<p><font color="#FFFFFF">......</font></p> 

<p> </p> 

</td> 

<td width="85%" valign="top"> 

---------------------------------------------------------------------------------------------------------------- 

</td> 

</tr> 

</table> 

</body> 

</html> 

在瀏覽器的地址欄中鍵入http://localhost:8080/mypage.jsp. 
這樣網站的界面就能統一起來,而設計者可以集中精力在功能模塊上處理用戶登錄、連接數據庫、發送email等等。每個JSP文件都有如下結構: 



<%@ include file="top.htm" %> 

<% 

// 實現某些功能 

%> 

<%@ include file="bot.htm" %> 


維護網站的界面也相對比較容易,只要修改top.htm和bot.htm,就能影響到所有網頁。 

五、 服務器參數設置 

JSWDK的Web服務器參數保存在jswdk-1.0.1webserver.xml中,用Windows寫字板打開并編輯這個文件就可以修改缺省設置值。本節內容主要針對JSWDK,Linux下Tomcat的設置方法略有不同。 
JSWDK缺省的文檔目錄是jswdk-1.0.1webpages,在此目錄下可以建立子目錄,例如jswdk-1.0.1webpages est,就能在瀏覽器中用http://localhost/test訪問這個目錄,為了使得這個子目錄能執行JSP程序,還必須在webserver.xml中的〈Service>〈/Service>節加入: 
<WebApplication id="test" mapping="/test" docBase="webpages/test" /> 并且,還必須建立jswdk-1.0.1webpages estWEB-INF目錄,并從jswdk-1.0.1webpagesWEB-INF目錄中復制過來以下四個文件:mappings.properties、mime.properties、servlets.properties以及webapp.properties。完成這些過程,才能通知JSWDK的Web服務器執行http://localhost/test 中的JSP程序。 

六、 JavaBean 

JSP網頁吸引人的地方之一就是能結合JavaBean技術來擴充網頁中程序的功能。 JavaBean是一種Java類 (class),通過封裝屬性和方法成為具有某種功能或者處理某個業務的對象。JavaBean被組織成為package(數據包)以便進行管理,實際上就是把一組JavaBean一起放在某某目錄中,每個類的定義前加上package某某,本例中為test。目錄test必須放在系統環境CLASSPATH包含的目錄下,系統才能找到其中的JavaBean。JSWDK在缺省狀態下將jswdk-1.0.1webpagesWEB-INFjspeans 加入CLASSPATH。建立自己的JavaBean和package時,就放在這個目錄中也不失為一種簡易的方法。 
下面介紹一個簡單的JavaBean框架。用文本編輯器創建一個文本文件helloWorld.java,并保存在jswdk-1.0.1webpagesWEB-INFjspeans est目錄下,其內容如下: 



package test; 

public class helloWorld { 

public String name = "My first bean"; 

public String getHi() 



return "Hello from " + name; 










helloWorld.java編輯好后,在DOS狀態下,進入目錄jswdk-1.0.1webpagesWEB-INFjspeans,用JDK的javac命令編譯helloWorld.java如下: 
javac helloWorld.java 
注意,Java是區分大小寫的,在程序中,編譯命令行中字母的大小寫都不能寫錯。編譯成功就表示建立了一個JavaBean。下面看如何在JSP中使用這個JavaBean。用文本編輯器創建一個文本文件hi-bean.jsp,并保存在jswdk-1.0.1webpages est目錄下,其內容如下: 



<html> 

<head> 

<title>JavaBean 試驗</title> 

</head> 

<body> 

<jsp:useBean id="helloBean" scope="session" class="test.helloWorld" /> 

<%= helloBean.getHi() %> 

<hr> 

<% 

helloBean.name = "JSP"; 

out.print(helloBean.getHi()); 

%> 

</body> 

</html> 




在JSP網頁中,使用 <jsp:useBean ... />語法來創建JavaBean對象,并命名為helloBean。讀者可從這個簡單的例子中看出設置、獲取JavaBean屬性,以及調用JavaBean方法的做法。在瀏覽器的地址欄中鍵入http://localhost:8080/test/hi-bean.jsp,得到結果如圖3所示。注意,如果修改和重新編譯了JavaBean程序,則需要關閉和重新啟動JSWDK的Web服務器以后修改的結果才會有效。如果僅僅修改JSP文件,則不用重新啟動JSWDK的Web服務器。 
雖然,這僅僅完成了一個非常簡單的JavaBean框架,但是遵循這個框架可以設計出多種多樣的JavaBean。例如,從JSP中訪問數據通常就是通過JavaBean來實現的。 

七、 數據庫連接 

數據庫連接對動態網站來說是最為重要的部分,Java中連接數據庫的技術是JDBC(Java Database Connectivity)。很多數據庫系統帶有JDBC驅動程序,Java程序就通過JDBC驅動程序與數據庫相連,執行查詢、提取數據等等操作。Sun公司還開發了JDBC-ODBC bridge,用此技術Java程序就可以訪問帶有ODBC驅動程序的數據庫,目前大多數數據庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等數據庫。下面介紹如何用Access實現一個動態FAQ(常見問題及答案)網站。首先建立一個Access數據庫faq.mdb,其中的表faqs有字段id(自動增量型,并設為主關鍵字)、subject(文字型,長度200)、answers(備注型)。這個表中可以存放一些編程知識的常見問題及答案, 
然后,在Control Panel(控制面板)的ODBC Datasource模塊中加入System DSN,取名faq,并指向faq.mdb。 創建一個JavaBean,名為faq.java,并保存在jswdk-1.0.1webpagesWEB-INFjspeans est目錄下。faq.java 的內容如下: 



package test; 

import java.sql.*; 



public class faq { 

String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; 

String sConnStr = "jdbc:odbc:faq"; 

Connection conn = null; 

ResultSet rs = null; 



public faq() { 

try { 

Class.forName(sDBDriver); 



catch(java.lang.ClassNotFoundException e) { 

System.err.println("faq(): " + e.getMessage()); 







public ResultSet executeQuery(String sql) { 

rs = null; 

try { 

conn = DriverManager.getConnection(sConnStr); 

Statement stmt = conn.createStatement(); 

rs = stmt.executeQuery(sql); 



catch(SQLException ex) { 

System.err.println("aq.executeQuery: " + ex.getMessage()); 



return rs; 





用上一節介紹的方法編譯faq.java以后,在jswdk-1.0.1webpages est目錄下創建JSP文件faq.jsp,其內容如下: 



<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

<title>我的FAQ !</title> 

</head> 

<body> 

<p><b>這是我的FAQ!</b></p> 

<%@ page language="java" import="java.sql.*" %> 

<jsp:useBean id="workM" scope="page" class="test.faq" /> 

<% 

ResultSet RS = workM.executeQuery("SELECT * FROM faqs"); 

String tt; 

while (RS.next()) { 

tt = RS.getString("Answer"); 

out.print("<LI>" + RS.getString("Subject") + "</LI>"); 

out.print("<pre>" + tt + "</pre>"); 



RS.close(); 

%> 




在瀏覽器的地址欄中鍵入http://localhost:8080/test/faq.jsp,faq.jsp調用JavaBean,從數據庫中讀出內容并輸出. 
限于篇幅,本文不能列舉JSP-JavaBean-JDBC/ODBC-數據庫的復雜例子,讀者可以從本文最后所推薦的網址中找到并下載到數據庫連接范例。 

八、 技術分析 
Microsoft 公司的 ASP 技術也是動態網頁開發技術。JSP和ASP從形式上非常相似,ASP程序員一眼就能認出〈% %>以及〈%= %>。但是深入探究下去會發現它們很多的差別,其中最主要的有以下三點: 

1、 JSP的效率和安全性更高 
ASP以源碼形式存放,以解釋方式運行,每次ASP網頁調用都需要對源碼進行解釋,運行效率不高。另外,IIS的漏洞曾使得許多網站源程序大曝光,包括筆者以前用ASP開發的網站,ASP程序全部被人下載了去。 
JSP在執行以前先被編譯成字節碼 (byte code),字節碼由Java虛擬機(Java Virtual Machine)解釋執行,比源碼解釋的效率高;服務器上還有字節碼的Cache機制,能提高字節碼的訪問效率。第一次調用JSP網頁可能稍慢,因為它被編譯成Cache,以后就快得多了。同時,JSP源程序不大可能被下載,特別是JavaBean程序完全可以放到不對外的目錄中。 

2、 JSP的組件 (Component) 方式更方便 
ASP通過COM來擴充復雜的功能,如文件上載、發送email以及將業務處理或者復雜計算分離出來成為獨立可重復利用的模塊。JSP通過JavaBean實現了同樣的功能擴充。 
在開發方面,COM的開發遠比JavaBean復雜和繁瑣,學會ASP不難,但學會開發COM可不簡單。而JavaBean就簡單多了,從本文上述示例中可以看出開發JavaBean很方便。 
在維護方面,COM必須在服務器上注冊,如果修改了COM程序,就必須重新注冊,甚至必須關機和重新啟動。JavaBean則不需要注冊,放在CLASSPATH包含的目錄中就行了。如果JavaBean進行了修改,則JSWDK和Tomcat現在還需要關閉和重新運行(但不是關機),但開發者已經許諾將在以后的版本中做到不需要關閉服務器。 
另外JavaBean是完全的OOP,可以針對不同的業務處理功能方便地建立一整套可重復利用的對象庫,例如用戶權限控制、email自動回復等等。 

3、 JSP的適應平臺更廣 
ASP目前僅適用于NT和IIS。雖然Unix下有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴充,Unix下的COM實現起來非常困難。 
JSP則不同,幾乎所有平臺都支持Java,JSP+JavaBean可以在所有平臺下通行無阻。NT下IIS通過一個插件,例如JRUN(http://www3.allaire.com/products/jrun/)或者ServletExec(http://www.newatlanta.com/),就能支持JSP。著名的Web服務器Apache已經能夠支持JSP。由于Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的運行平臺。雖然現在NT操作系統占了很大的市場份額,但是在服務器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。 
從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節碼都是標準的與平臺無關的。筆者將在NT下實驗的JSP網頁原封不動地拿到Linux下就運行起來了,感覺非常滿意。 

九、 結論 
綜上所述,JSP可謂是構建動態網站的一個利器,故推薦給讀者,祝愿你們掌握JSP,開發出優秀的網站。ASP程序員也請試一下,JSP里也有session、request、response/out等對象,親自試試看如何。 



附文 

這里是關于JSP的重要參考資料,有興趣的讀者可以進一步閱讀。 



http://java.sun.com/products/jsp/faq.html 

http://www.esperanto.org.nz/jsp/jspfaq.html 

http://www.zdnet.com/pcweek/stories/news/0,4153,410709,00.html 

http://developer.netscape.com/viewsource/kuslich_jsp/kuslich_jsp.html 

http://web2.java.sun.com/products/jsp/jsp-asp.html 

http://www.49028c.com/kaifa/jsp/

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久久中文字幕| 色噜噜狠狠狠综合曰曰曰88av| 亚洲毛茸茸少妇高潮呻吟| 日韩av电影在线免费播放| www.欧美三级电影.com| 麻豆乱码国产一区二区三区| 92福利视频午夜1000合集在线观看| 国产一区二区三区在线视频| 成人午夜小视频| 欧美成人精品不卡视频在线观看| 一本大道久久加勒比香蕉| 国产日韩av在线| 亚洲人成电影在线观看天堂色| 精品无人区太爽高潮在线播放| 欧美床上激情在线观看| 国产精品偷伦视频免费观看国产| 久久91亚洲人成电影网站| 夜夜嗨av一区二区三区四区| 98精品国产自产在线观看| 亚洲成人1234| 91国产一区在线| 国产精品自拍网| 国产精品久久9| 国产伦精品一区二区三区精品视频| 国产精品一区二区三区免费视频| 欧美日韩国产中文精品字幕自在自线| 国产亚洲一区二区精品| 欧美美女操人视频| 精品国内亚洲在观看18黄| 亚洲视频一区二区三区| 日韩高清中文字幕| 亚洲第一色中文字幕| 久久影视三级福利片| 国产精品久久久久久久久久久新郎| 精品国产一区二区三区久久狼5月| 国产91色在线播放| 日本亚洲精品在线观看| 韩国视频理论视频久久| xvideos成人免费中文版| 久久99热精品这里久久精品| 日韩精品在线观看一区二区| 国产精品久久久久影院日本| 亚洲精品国产综合区久久久久久久| 夜夜嗨av一区二区三区四区| 中文字幕精品一区二区精品| 久久精品美女视频网站| 欧美日韩一区二区在线| 久久精品国产免费观看| 亚洲欧美国产一本综合首页| 亚洲精品国产拍免费91在线| 亚洲成人教育av| 国产精品成av人在线视午夜片| 伊人久久久久久久久久久久久| 九九热这里只有精品6| 欧美猛男性生活免费| 在线观看国产精品91| 久久夜精品va视频免费观看| 亚洲а∨天堂久久精品9966| 欧美日韩国产精品一区| 久久久精品视频成人| 欧美性视频网站| 国产精品久久久久久婷婷天堂| 日韩av在线直播| 亚洲色图综合网| 国产精品午夜国产小视频| 亚洲国产99精品国自产| 91免费高清视频| 亚洲电影在线观看| 97激碰免费视频| 国产精品久久久久久久av电影| 日韩精品在线观看一区| 日韩欧美高清在线视频| 亚洲色图第三页| 日韩欧美成人网| 日韩欧美中文免费| 成人精品在线视频| 欧美黑人极品猛少妇色xxxxx| 久久影视三级福利片| 91情侣偷在线精品国产| 久久在线视频在线| 亚洲欧美在线免费| 国产精品亚洲美女av网站| 久久久av电影| 亚洲第一国产精品| 午夜精品久久久久久久久久久久久| 日韩欧美在线视频日韩欧美在线视频| 精品久久久视频| 国产精品视频成人| 136fldh精品导航福利| 久久艹在线视频| 成人深夜直播免费观看| 日韩欧美第一页| 欧美性高潮在线| 亚洲视屏在线播放| 亚洲日本成人女熟在线观看| 久久精品电影一区二区| 日韩在线观看免费| 亚洲男人av电影| 欧美中文字幕视频在线观看| 91精品久久久久久久久| 欧美激情中文字幕乱码免费| 中文字幕日韩有码| 久青草国产97香蕉在线视频| 97久久精品国产| 久久999免费视频| 国产精品手机播放| 欧美韩国理论所午夜片917电影| 国产精品尤物福利片在线观看| 超碰97人人做人人爱少妇| 国产精品日日摸夜夜添夜夜av| 中日韩美女免费视频网站在线观看| 国产精品黄视频| 国产欧美日韩精品丝袜高跟鞋| 青青久久av北条麻妃海外网| 黑人狂躁日本妞一区二区三区| 亚洲高清在线观看| 国自在线精品视频| 亚洲香蕉成人av网站在线观看| 69影院欧美专区视频| 精品国产一区二区三区久久久| 国产成人精品久久二区二区91| 青青久久av北条麻妃海外网| 欧美电影电视剧在线观看| 精品人伦一区二区三区蜜桃网站| 欧美日韩亚洲视频一区| 亚洲天天在线日亚洲洲精| 日本高清久久天堂| 黑人极品videos精品欧美裸| 欧美日本高清视频| 久久久久久国产精品三级玉女聊斋| 91av在线播放视频| 另类少妇人与禽zozz0性伦| 国产亚洲a∨片在线观看| 深夜福利日韩在线看| 成人免费高清完整版在线观看| 欧美香蕉大胸在线视频观看| 日韩精品丝袜在线| xxx欧美精品| 欧美又大又硬又粗bbbbb| 久久久久成人网| 欧美韩国理论所午夜片917电影| 久久成人精品电影| 色与欲影视天天看综合网| 热久久免费国产视频| 欧美在线欧美在线| 国产91对白在线播放| 国产丝袜一区二区三区免费视频| 欧美日韩一区二区三区| 国产精品欧美久久久| 久久久av一区| 国产欧美日韩精品在线观看| 亚洲国产天堂网精品网站| 日韩美女福利视频| 欧美极品美女视频网站在线观看免费| 伊人久久男人天堂| 亚洲日韩第一页| 大胆欧美人体视频| 欧美亚洲在线视频| 国产成人精品网站| 国产精品亚洲综合天堂夜夜| 日韩在线观看免费高清完整版| 国产91|九色| 欧美韩国理论所午夜片917电影| 欧美性生交xxxxxdddd|