靈魂-放水

          為學日益,為道日損。

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

          出處:http://blog.csdn.net/21aspnet/archive/2005/03/15/320329.aspx
          http://www.cnbruce.com/blog/showlog.asp?cat_id=5&log_id=657

          首先,先放出一個地址給大家測試

          http://cnbruce.com/test/htmlpro/?name=cnbruce&email=cnbruce@126.com

          1,時下流行的(可能是吧,因為最近問的人比較多)就是沒有任何文件名的URL地址。比如htmlpro/?其實這和服務器設置的默認文件名有關(guān),比如index.htm,index.html,index.asp等等,不信你試試我朋友的一個(asp的)。

          http://www.windsn.com/blog/?viewType=byCate&cateID=3

          2,本處的文件為index.html,同時后面帶有參數(shù),頁面效果如同ASP一般提取信息內(nèi)容。

          如下是轉(zhuǎn)載的文章(作者劉筱)可以說明些東西


          經(jīng)常上網(wǎng)的朋友肯定對“?http://host/***.asp?arg1=*&arg2=* ?”之類的URL(即網(wǎng)址)不會陌生。這類網(wǎng)址的作用就是通過在URL后面附加信息內(nèi)容來傳遞相關(guān)信息給遠程Web服務器,并在Web服務器進行適當處理后將結(jié)果返回給客戶端,從而達到網(wǎng)頁交互的目的,并實現(xiàn)網(wǎng)頁內(nèi)容動態(tài)化。(注意:?URL與信息內(nèi)容之間通過“?”連接,各內(nèi)容字段之間則通過字符“&”來分隔,每個字段的名稱/取值表示為“名稱=取值”形式。)但通過這種方式實現(xiàn)的動態(tài)網(wǎng)頁均需要服務器端編程技術(shù)的支持,最近筆者在制作個人網(wǎng)站時利用瀏覽器支持的DHTML和XML技術(shù),經(jīng)過不斷嘗試,在免費主頁空間通過這種方式實現(xiàn)動態(tài)網(wǎng)頁。

          一、原理分析

          當瀏覽器通過http://remotehost/program?querystring ?這種方式請求Web服務器時,Web服務器將對請求地址的URL進行解析,把“?”后面的querystring字符串存入服務器特定環(huán)境變量,然后調(diào)用服務器端編程執(zhí)行環(huán)境,如ASP(Activex?Server?Page)等對請求program文件進行處理。

          具體調(diào)用何種編程執(zhí)行環(huán)境依據(jù)服務器的設置而定,如果請求的文檔是asp類型的文件,則調(diào)用ASP,如是aspx類型文件,則調(diào)用ASP.NET。在program文件中則可以通過一定方法來讀取環(huán)境變量,如asp文件就可以通過Reques.Querystring數(shù)據(jù)集合來讀取環(huán)境變量。編程執(zhí)行環(huán)境處理完畢后將結(jié)果返回給Web服務器,Web服務器再將結(jié)果返回給瀏覽器,從而達到網(wǎng)頁內(nèi)容動態(tài)化的目的。

          通過上述分析我們可以知道,如果使用http://remotehost/*.htm?querystring ?方式向Web服務器發(fā)送請求時,Web服務器將向瀏覽器直接返回請求的HTML網(wǎng)頁。這時我們就可以在網(wǎng)頁中利用Location.href屬性獲得附加了信息內(nèi)容的URL串,經(jīng)過適當處理后就可以得到所附加的信息內(nèi)容字段名稱及其取值,再通過瀏覽器支持的DHTML特性進行處理,就可以實現(xiàn)網(wǎng)頁內(nèi)容動態(tài)化,從而在不支持服務器端編程技術(shù)的免費主頁空間上達到網(wǎng)頁交互的目的。

          我們也可以看出,通過這種方式達到網(wǎng)頁動態(tài)交互的目的即使是在瀏覽器中實現(xiàn)也仍然擺脫不了Web服務器的支持,否則瀏覽器將把“?querystring”作為請求的URL的一部分,從而出現(xiàn)網(wǎng)頁不能查看的錯誤提示。

          二、應用示例

          ---下面給出了一個帶有詳細注釋的具體示例源代碼。注意:?querystring.js是一個實用程序,它可以在網(wǎng)頁中直接引用,然后在網(wǎng)頁中使用Request[“名稱”]即可獲取用戶輸入的有關(guān)信息內(nèi)容。

          1.querystring.js源代碼


          function?QueryString()
          {//構(gòu)造參數(shù)對象并初始化
          var?name,value,i;
          var?str=location.href;//獲得瀏覽器地址欄URL串
          var?num=str.indexOf("?")
          str=str.substr(num+1);//截取“?”后面的參數(shù)串
          var?arrtmp=str.split("&");//將各參數(shù)分離形成參數(shù)數(shù)組
          for(i=0;i?<?arrtmp.length;i++){
          num=arrtmp[i].indexOf("=");
          if(num>0){
          name=arrtmp[i].substring(0,num);//取得參數(shù)名稱
          value=arrtmp[i].substr(num+1);//取得參數(shù)值
          this[name]=value;//定義對象屬性并初始化
          }
          }
          }
          var?Request=new?QueryString();//使用new運算符創(chuàng)建參數(shù)對象實例


          2.Sample.htm源代碼


          <Html>
          <Head>
          <Meta?http-equiv="Content-Type"content="text/html;?charset=gb2312"?>
          <Title>示例</Title>
          <script?src="Querystring.js"></script>
          </Head?>
          <Body>
          <script>
          var?newElement=document.createElement("div");//創(chuàng)建div對象
          var?str="<u>"+Request["name"]+"</u>,歡迎光臨!<br>您的E-mail是:<u>"+Request["email"]+"</u>";//利用實例["字段名稱"]獲取參數(shù)內(nèi)容
          newElement.innerHTML=str;
          document.body.appendChild(newElement);//向文檔添加div對象
          </script>
          </Body>
          </Html>



          如果對該示例應用DHTML與XML技術(shù)進行擴充,將會取得不可思議的效果。該作者就是通過這種途徑在只支持純HTML的主頁空間建立了一個相當不錯的動態(tài)圖片查看器

          所以,各位,實踐下咯。
          ?
          posted on 2006-12-18 20:32 放水老倌 閱讀(322) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 防城港市| 金华市| 花莲市| 丹江口市| 永康市| 靖州| 金华市| 灵宝市| 申扎县| 抚州市| 远安县| 定结县| 自贡市| 黔西县| 道孚县| 东平县| 长岛县| 青龙| 黔江区| 聊城市| 临洮县| 合江县| 左权县| 石棉县| 克山县| 灵台县| 桦川县| 东平县| 宽城| 晋城| 克山县| 浙江省| 寿光市| 浠水县| 滨州市| 永嘉县| 盖州市| 凉城县| 陵水| 宜宾县| 天全县|