大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 其他相关 -> 动态网页技术介绍—ASP、JSP、CGI、PHP

动态网页技术介绍—ASP、JSP、CGI、PHP

时间: 2021-07-31 作者:daque

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=utf8"> <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本领。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.