六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

動態頁面技術說明—ASP、JSP、CGI、PHP

[摘要]Active Server Pages即ASP是微軟開發的一種類似HTML(Hypertext Markup Language超文本標識語言)、Script(腳本)與CGI(Common GAteway Interface 通用網關接口)的結合體,它沒有提供自己專門的編程語言,而是允許用戶使用包括...

Active Server Pages即ASP是微軟開發的一種類似HTML(Hypertext Markup Language超文本標識語言)、Script(腳本)與CGI(Common GAteway Interface 通用網關接口)的結合體,它沒有提供自己專門的編程語言,而是允許用戶使用包括VBSCRIPT,javascript等在內的許多已有的腳本語言編寫ASP的應用程序。ASP的程序編制比HTML更方便且更有靈活性。它是在WEB服務器端運行,運行后再將運行結果以HTML格式傳送至客戶端的瀏覽器。因此ASP與一般的腳本語言相比,要安全的多。
對于廣大網頁技術愛好者來說,ASP比CGI具有的最大好處是可以包含HTML標簽,也可以直接存取數據庫及使用無限擴充的ActiveX控件,因此在程序編制上要比HTML方便而且更富有靈活性。

ASP吸收了當今許多流行的技術,如IIS,ACTIVEX,VBSCRIPT,ODBC等,是一種發展較為成熟的網絡應用程序開發技術;其核心技術是對組件和對象技術的充分支持。通過使用ASP的組件和對象技術,用戶可以直接使用ActiveX控件,調用對象方法和屬性,以簡單的方式實現強大的功能。可以在此找到更詳細的信息:http://www.activeserverpages.com。 

ASP中最為常用的內置對象和組件如下:

Request對象:用來連接客戶端的Web頁(.htm文件)和服務器的Web頁(.asp文件),可以獲取客戶端數據,也可以交換兩者之間的數據。

Response對象:用于將服務端數據發送到客戶端,可通過在客戶端瀏覽器顯示,用戶瀏覽頁面的重定向以及在客戶端創建cookies等方式進行。該功能與Request對象的功能恰恰相反。

  Server對象:許多高級功能都靠它來完成;它可以創建各種Server對象的實例以簡化用戶的操作。
  Application對象:它是個應用程序級的對象,用來在所有用戶間共享信息,并可以Web應用程序運行期間持久地保持數據。同時如果不加以限制,所有客戶都可以訪問這個對象。
  Session對象:它為每個訪問者提供一個標識;Session可以用來存儲訪問者的一些喜好,可以跟蹤訪問者的的習慣。在購物網站中,Session常用于創建購物車(Shopping Cart)。
  Browser Capabilities(瀏覽器性能組件):可以確切的描述用戶使用的瀏覽器類型、版本以及瀏覽器支持的插件功能。使用此組件能正確地裁剪出自己的ASP文件輸出,使得ASP文件適合于用戶的瀏覽器,并可以根據檢測出的瀏覽器的類型來顯示不同的主頁。
  FileSystem Objects(文件訪問組件):允許你訪問文件系統,處理文件。
  ADO(數據庫訪問組件):它是最有用的組件;可以通過ODBC實現對數據庫的訪問。
  Ad Rotator(廣告輪顯組件):專門為出租廣告空間的站點設計的,可以動態的隨機顯示多個預先設定的BANNER廣告條。


以下是ASP通過ADO組件調用數據庫并輸出的例子:


<%@ LANGUAGE="VBSCRIPT"%>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<TITLE>使用ADO的例子</TITLE>
</HEAD>
<BODY>
<P align="center">所查詢的書名為:<br>
<%
Dim dataconn
Dim datardset
Set dataconn=Sever.CreateObject("ADODB.Connection")
Set datardset=Sever.CreateObject("ADODB.Recordset")
dataconn.Open "library","sa","" "數據庫為library
datardset.Open "SELECT name FROM book",dataconn "查詢表book
%>
<%
Do While Not datardset.EOF
%>
<%=datardset("name") %><br>
<%
datardset.MoveNext
Loop
%>
</P>
</BODY>
</HTML>

  ASP技術有一個缺陷:它基本上是局限于微軟的操作系統平臺之上。ASP主要工作環境是微軟的IIS應用程序結構,又因Activex對象具有平臺特性,所以ASP技術不能很容易地實現在跨平臺的WEB服務器的工作。 
------------------------------------------------------------------------------

JSP(Java Server Pages)是由Sun Microsystem公司于1999/6推出的新技術,是基于Java Servlet以及整個java體系的Web開發技術。利用這一技術可以建立先進、安全和跨平臺的動態網站。
總的來講,Java Sever Pages(JSP)和 微軟的Active Sever Pages(ASP)在技術方面有許多相似之處。兩者都是為基于WEB應用實現動態交互網頁制作提供的技術環境支持。同等程度上來講,兩者都能夠為程序開發人員提供實現應用程序的編制與自帶組件設計網頁從邏輯上分離的技術。而且兩者都能夠替代CGI使網站建設與發展變的較為簡單與快捷。不過兩者是來源于不同的技術規范組織,其實現的基礎:WEB服務器平臺要求不相同。 ASP一般只應用于Windows NT/2000平臺,而JSP則可以不加修改地在85%以上的Web Server上運行,其中包括了NT的系統,符合"write once,run anywhere"("一次編寫,多平臺運行")的java標準,實現平臺和服務器的獨立性,而且基于JSP技術的應用程序比基于ASP的應用程序易于維護和管理。 


將內容的生成和顯示進行分離 
使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容(內容是根據請求來變化的,例如請求帳戶信息或者特定的一瓶酒的價格)。生成內容的邏輯被封裝在標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。如果核心邏輯被封裝在標識和Beans中,那么其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。 

在服務器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBCTM技術訪問數據庫,或者包含文件),并且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。

強調可重用的組件 

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

采用標識簡化頁面開發 
Web頁面開發人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。標準的JSP標識能夠訪問和實例化JavaBeans組件,設置或者檢索組件屬性,下載Applet,以及執行用其他方法更難于編碼和耗時的功能。

JSP的適應平臺更廣 
這是JSP比ASP的優越之處。幾乎所有平臺都支持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字節碼都是標準的、與平臺無關的。 

Java中連接數據庫的技術是JDBC(Java Database Connectivity)。很多數據庫系統帶有JDBC驅動程序,Java程序就通過JDBC驅動程序與數據庫相連,執行查詢、提取數據等等操作。Sun公司還開發了JDBC-ODBC bridge,用此技術Java程序就可以訪問帶有ODBC驅動程序的數據庫,目前大多數數據庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等數據庫。
---------------------------------------------------------------------------

CGI--Common Gateway Interface,公用網關接口。它可以稱之為一種機制。因此您可以使用不同的程序編寫適合的CGI程序,如Visual Basic、Delphi或C/C++等,您將已經寫好的程序放在WEB服務器的計算機上運行,再將其運行結果通過WEB服務器傳輸到客戶端的瀏覽器上。我們通過CGI建立WEB頁面與腳本程序之間的聯系,并且可以利用腳本程序來處理訪問者輸入的信息并據此作出響應。事實上,這樣的編制方式比較困難而且效率低下,因為你每一次修改程序都必須重新將CGI程序編譯成可執行文件。
最常用于編寫CGI技術的語言是Perl(Practical Extraction and Report Language,文字分析報告語言),它具有強大的字符串處理能力,特別適合用于分割處理客戶端form提交的數據串;用它來編寫的程序后綴為.pl。

我們來看個簡單的例子hello.pl:

#!/usr/bin/perl 
$Hello="Hello,CGI"; #字符串變量;
$Time=2;
print $Hello," for the",$Time,"nd time!","\n"; #輸出一句話;
# End hello.pl
輸出結果:
Hello,CGI for the 2nd time!
[page_break]程序中第一個注釋行具有特殊的含義,它是UNIX系統中shell的一條指令,表示在命令行上運行其后的命令。第一行是必需的,/usr/bin/perl提供了Perl解釋器的完整路徑名。例中的井號(#)為Perl語言中的注釋字符。P erl技術參考站點:http://www.perl.com。 

CGI調用數據庫需要安裝DBI----DataBase Interface,即數據庫接口技術。DBI提供了基于Perl的標準界面連接到各種不同的SQL引擎上。各種數據庫的DBI模塊可在此找到:http://www.perl.com/CPAN-local/modules/by-module/DBI/。以下是連接ORACLE數據庫的一個例子: 

use DBI; #調用DBI; 
#以下三項是數據庫名,調用數據庫的用戶名,密碼;
$dbname="dbi:Oracle:DBName";
$user="user";
$pass="pass"; 
#聯系數據庫;
$dbh=DBI->connect($dbname,$user,$pss)   die "Error Connecting to database \n"; #數據庫查詢;
$tag=$dbh->prepare("SELECT * FROM 表名");
$tag->execute; #執行查詢;
die "Error:$DBI::err\n" if DBI::err; #出錯判斷;
my($col1,$col2); #定義只在本程序中(用my來表示)有效的兩個變量;
while(($col1,$col2)=$tag->fetchrow) {
print "Column 1:$col1\n";
print "Column 2:$col2\n";
}
$dbh->disconnect or warn "Disconnection failed \n"; #斷開與數據庫的連接;  CGI技術已經發展的很成熟了,功能強大,例如SINA,NETEASE,SOHU等網站的搜索引擎,用的就是CGI技術。
---------------------------------------------------------------------------

PHP--Hypertext Preprocessor(超文本預處理器),是一種易于學習和使用的服務器端腳本語言,是生成動態網頁的工具之一。它是嵌入HTML文件的一種腳本語言。其語法大部分是從C,JAVA,PERL語言中借來,并形成了自己的獨有風格;目標是讓WEB程序員快速的開發出動態的網頁。它是當今INTERNET上最為火熱的腳本語言,只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點。
PHP是完全免費的,可以不受限制的獲得源碼,甚至可以從中加進你自己需要的特色。PHP在大多數Unix平臺,GUN/Linux和微軟Windows平臺上均可以運行。PHP的官方網站是:http://www.php.net。 

與ASP、JSP一樣,PHP也可以結合HTML語言共同使用;它與HTML語言具有非常好的兼容性,使用者可以直接在腳本代碼中加入HTML標簽,或者在HTML標簽中加入腳本代碼從而更好的實現頁面控制,提供更加豐富的功能。

PHP的優點有:安裝方便學習過程簡單;數據庫連接方便,兼容性強;擴展性強;可以進行面向對象編程。引用Nissan的Xterra的話來說就是PHP可以做到你想讓它做到的一切而且無所不能! 

PHP提供了標準的數據庫接口,幾乎可以連接所有的數據庫;尤其和MYSQL數據庫的配合更是“天衣無縫”。下面引用一個調用MYSQL數據庫并分頁顯示的例子來加深對PHP的了解。

<?
$pagesize = 5; //每頁顯示5條記錄
$host="localhost";
$user="user";
$password="psw"; 
$dbname="book"; //所查詢的庫表名;
//連接MySQL數據庫
mysql_connect("$host","$user","$password") or die("無法連接MySQL數據庫服務器!"); $db = mysql_select_db("$dbname") or die("無法連接數據庫!");$sql = "select count(*) as total from pagetest";//生成查詢記錄數的SQL語句
$rst = mysql_query($sql) or die("無法執行SQL語句:$sql !"); //查詢記錄數
$row = mysql_fetch_array($rst) or die("沒有更多的記錄!"); /取出一條記錄
$rowcount = $row["total"];//取出記錄數
mysql_free_result($rst) or die("無法釋放result資源!"); //釋放result資源$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出總共有幾頁if(!isset($pageno)) {
$pageno = 1; //在沒有設置pageno時,缺省為顯示第1頁
}
if($pageno<1) {
$pageno = 1; //若pageno比1小,則把它設置為1
}
if($pageno>$pagecount) {
$pageno = $pagecount; //若pageno比總共的頁數大,則把它設置為最后一頁
}
if($pageno>0) {
$href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF轉換為可以在URL上使用的字符串,這樣的話就可以處理中文目錄或中文文件名
if($pageno>1){//顯示上一頁的褳接
echo "<a href="" . $href . "?pageno=" . ($pageno-1) . "">上一頁</a> ";
}
else{
echo "上一頁 ";
}
for($i=1;$i<$pageno;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
echo $pageno . " ";
for($i++;$i<=$pagecount;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
if($pageno<$pagecount){//顯示下一頁的褳接
echo "<a href="" . $href . "?pageno=" . ($pageno+1) . "">下一頁</a> ";
}
else{
echo "下一頁 ";
}$offset = ($pageno-1) * $pagesize;//算出本頁第一條記錄在整個表中的位置(第一條記錄為0)
$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查詢本頁數據的SQL語句
$rst = mysql_query($sql);//查詢本頁數據
$num_fields = mysql_num_fields($rst);//取得字段總數
$i = 0;
while($i<$num_fields){//取得所有字段的名字
$fields[$i] = mysql_field_name($rst,$i);//取得第i+1個字段的名字
$i++;
}
echo "<table border="1" cellspacing="0" cellpadding="0">";//開始輸出表格
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//顯示字段名稱
echo "<th>$field_name</th>";
}
echo "</tr>";
while($row=mysql_fetch_array($rst)){//顯示本頁數據
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//顯示每個字段的值
$field_value = $row[$field_name];
if($field_value==""){
echo "<td> </td>";
}
else{
echo "<td>$field_value</td>";
}
}
echo "</tr>";
}
echo "</table>";//表格輸出結束
mysql_free_result($rst) or die("無法釋放result資源!");//釋放result資源
}
else{
echo "目前該表中沒有任何數據!";
}mysql_close($server) or die("無法與服務器斷開連接!");//斷開連接并釋放資源
?>
從這個例子可以看出,PHP的語法結構很象C語言,并易于掌握。而且PHP的跨平臺特性讓程序無論在WINDOWS平臺還是LINUX、UNIX系統都能運行自如。筆者編寫PHP程序是在WINNT4中,然后上傳到UNIX系統運行,從未發現兼容性的問題。到目前為止,無論在個人網站還是在企業網站上,以上4種技術中以PHP的應用最為廣泛。

以上4種技術,皆在制作動態網頁上各顯神通。至于選擇哪種技術,取決于制作者的愛好和技術儲備。對于廣大個人主頁的愛好者、制作者來說,筆者建議盡量少用難度較大、上手較慢的CGI技術。如果您是"微軟"的擁躉,采用ASP技術會讓您得心應手;如果是LINUX的追求者,運用PHP技術在目前是最恰當、最明智的選擇。此外,不要忽略了JSP技術,據說它是未來最有發展前途的動態網站技術,但是在學JSP之前,必須掌握JAVA技術。



主站蜘蛛池模板: 亚洲你懂的| 五月激情婷婷丁香 | 日本欧美视频在线 | 亚洲一区二区三区四区在线 | 欧美综合图片区 | 欧美亚洲综合视频 | 日本中文字幕第一页 | 色综合手机在线 | 青青视频网站 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠扒开双腿 | 天天做天天爱夜夜爽 | 中文字幕在线欧美 | 亚洲狼人综合 | 日本三级成人中文字幕乱码 | 日韩精品视频在线 | 日本h在线 | 中文字幕35 | 最近免费观看高清韩国日本大全 | 亚洲小视频在线观看 | 亚洲日韩精品欧美一区二区 | 伊人影视网 | 在线免费日韩 | 亚洲精品一线二线三线 | 青春草在线视频免费 | 天天综合天天操 | 四虎永久在线免费观看 | 亚洲综合久| 午夜性影院爽爽爽爽爽爽 | 一区二区福利视频 | 日本精品国产 | 一本久久道 | 日韩黄色小视频 | 欧美亚洲第一区 | 欧美一线高本道高清在线 | 午夜私人影院粉色视频我要 | 中文字幕色婷婷在线视频 | 最近新韩国日本免费看 | 亚洲欧美日韩成人网 | 亚洲国产成人久久 | 亚洲欧洲国产精品久久 | 一级毛片子 |