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

首頁 > 編程 > JSP > 正文

JSP的安裝、啟動及簡單示例

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

最大的網站源碼資源下載站,

一、 什么是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.asptoday.com/articles/19991022.htm

上一篇:JSP技術簡介

下一篇:JSP入門教程(2)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费观看视频| 欧美二区在线播放| 色婷婷综合久久久久| 色老头一区二区三区| 亚洲桃花岛网站| 久久久亚洲国产天美传媒修理工| 欧美电影在线观看网站| 亚洲一区二区三区四区在线播放| 欧美亚洲第一区| 亚洲人精选亚洲人成在线| 欧美日韩国产成人高清视频| 日韩av片免费在线观看| 欧美俄罗斯乱妇| 18一19gay欧美视频网站| 国产日韩中文字幕| 韩国三级电影久久久久久| 91精品国产自产91精品| 亚洲aⅴ日韩av电影在线观看| 欧美国产精品日韩| 国产成人aa精品一区在线播放| 亚洲最大福利视频网站| 国产精品一区二区久久精品| 久久精品色欧美aⅴ一区二区| 欧美精品一区二区三区国产精品| 国产精品jvid在线观看蜜臀| 狠狠干狠狠久久| 亚洲精品欧美一区二区三区| 久久久久www| 亚洲成人av资源网| 国产色视频一区| 亚洲成人黄色网址| 97婷婷涩涩精品一区| 欧美一级免费看| 欧美激情国产日韩精品一区18| 国产精品视频yy9099| 性色av一区二区三区红粉影视| 亚洲国产免费av| 亚洲国产日韩欧美综合久久| 动漫精品一区二区| 欧美国产日韩精品| 美女啪啪无遮挡免费久久网站| 成人写真视频福利网| 精品亚洲精品福利线在观看| 亚洲国产精品yw在线观看| 日韩成人小视频| 美女999久久久精品视频| 日韩欧美视频一区二区三区| 国产亚洲在线播放| 国产欧美一区二区三区久久| 中文字幕在线成人| 久久6精品影院| 91福利视频网| 欧美理论电影网| 久久国产视频网站| 91精品国产亚洲| 精品女同一区二区三区在线播放| 亚洲bt欧美bt日本bt| 5566日本婷婷色中文字幕97| 国产精品高潮呻吟久久av野狼| 国产一区欧美二区三区| 日韩欧美在线视频观看| 8090理伦午夜在线电影| 欧美国产亚洲精品久久久8v| 欧美日韩精品二区| 亚洲精品xxx| 国产精品第10页| 久久青草精品视频免费观看| 欧美日韩亚洲视频| 性欧美长视频免费观看不卡| 亚洲free性xxxx护士白浆| 亚洲人成绝费网站色www| 红桃av永久久久| 日韩成人激情影院| 久久久av电影| 亚洲专区中文字幕| 国外日韩电影在线观看| 亚洲自拍另类欧美丝袜| 俺去啦;欧美日韩| 91天堂在线视频| 亚洲欧美国产日韩天堂区| 亚洲欧美精品suv| 欧美激情综合色综合啪啪五月| 亚洲成人av中文字幕| 成人免费视频xnxx.com| 日韩视频精品在线| 欧美成人黑人xx视频免费观看| 亚洲天堂久久av| 欧美日韩免费在线观看| 久久综合伊人77777| 91视频国产一区| 欧美日韩一区二区免费视频| 成人网在线免费观看| 久久在线视频在线| 色中色综合影院手机版在线观看| 欧美中文字幕在线视频| 亚洲综合国产精品| 欧美激情网站在线观看| 国产精品偷伦视频免费观看国产| 欧美日韩一区免费| 欧美亚洲成人免费| 国产精品久久久久91| 日本欧美黄网站| 亚洲欧美成人精品| 91在线视频成人| 深夜福利日韩在线看| 国外成人在线视频| 日韩中文视频免费在线观看| 国产精品户外野外| 疯狂蹂躏欧美一区二区精品| 国产成人亚洲综合| 国产日产久久高清欧美一区| 久久精品国产96久久久香蕉| 久久久精品亚洲| 久久久国产一区| 亚洲欧洲免费视频| 97精品免费视频| 中文字幕在线日韩| 91精品国产电影| 国产脚交av在线一区二区| 欧美日韩在线视频首页| 色偷偷噜噜噜亚洲男人的天堂| 秋霞av国产精品一区| 久久久亚洲影院你懂的| 国产精品自拍小视频| 96精品久久久久中文字幕| 欧美午夜精品久久久久久人妖| 国产精品自产拍在线观| 最好看的2019的中文字幕视频| 欧美精品videossex性护士| 欧美极品在线播放| 成人午夜激情免费视频| 亚洲精品久久久久中文字幕欢迎你| 国产精品日韩在线| 国产精品羞羞答答| 久久91亚洲精品中文字幕| 国产精品吴梦梦| 日韩视频一区在线| 亚洲国产高清高潮精品美女| 日韩av手机在线| 中文字幕欧美亚洲| 狠狠久久五月精品中文字幕| 国产一区av在线| 深夜精品寂寞黄网站在线观看| 国产精品海角社区在线观看| 中文字幕亚洲综合久久| 黑人狂躁日本妞一区二区三区| 中文字幕一精品亚洲无线一区| 亚洲国产精品va在线观看黑人| 久久影院资源网| 亚洲第一国产精品| 国产亚洲欧美一区| 欧美日本国产在线| 日韩精品视频在线观看网址| 亚洲免费中文字幕| 亚洲2020天天堂在线观看| 久久偷看各类女兵18女厕嘘嘘| 精品在线欧美视频| 久久资源免费视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲国产精品电影在线观看| 伦理中文字幕亚洲| 国产婷婷97碰碰久久人人蜜臀| 欧美专区在线视频| 国产在线拍偷自揄拍精品|