您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > Request与Server物件
第10章Request與Server物件10-1Request物件的表單處理10-2伺服器的系統資訊10-3瀏覽程式的相關資訊10-4Server物件的使用10-5ServerSideInclude10-1Request物件的表單處理10-1-1Form與QueryString集合物件10-1-2設定中文的編碼方式10-1-3表單如何傳遞資料10-1-4URL參數傳遞資料10-1-1Form與QueryString集合物件-ASP3.0版的表單處理ASP3.0版的表單處理使用Form與QueryString集合物件取得使用者輸入的資料,如下所示:•傳統HTML表單網頁:使用表單欄位以HTTP通訊協定的檔頭傳遞表單欄位資料,可以使用POST或GET方法,如下所示:formname=namemethod=POST|GETaction=URL……./form•URL參數:從瀏覽程式輸入的網址傳遞參數,其總長度只有1024個字元。10-1-1Form與QueryString集合物件-Form集合物件如果網頁表單使用POST方法傳遞資料,其作法是將傳遞的資料在編碼後,透過HTTP通訊協定的檔頭傳送到Web伺服器,在伺服端使用Form集合物件取出資料,其語法如下所示:Request((FieldName)Request.Form(FieldName)10-1-1Form與QueryString集合物件-QueryString集合物件如果網頁表單使用GET方法傳遞資料,其作法是將傳遞的資料編碼後,透過URL網址後的字串傳送到Web伺服器,參數是位在問號之後,如果參數不只一個,請使用「&」符號分隔,如下所示:=value1&fname2=value2伺服端使用QueryString集合物件取出資料,如下所示:Request((FieldName)Request.QueryString(FieldName)10-1-2設定中文的編碼方式-說明ASP.NET預設的編碼方式是Unicode的UTF-8,也就是說執行ASP.NET程式輸出的網頁內容是UTF-8編碼的資料。換句話說,使用表單欄位或URL參數傳遞中文資料時,接收的資料因為編碼問題,顯示的是亂碼,為了解決此問題,請在虛擬目錄建立名為【Web.config】的ASP.NET資源設定檔,檔案內容是一份XML文件。10-1-2設定中文的編碼方式-Web.config01:configuration02:system.web03:globalization04:fileEncoding=big505:requestEncoding=big506:responseEncoding=big507:culture=zh-TW08:/09:/system.web10:/configuration10-1-3表單如何傳遞資料-說明在ASP.NET以傳統HTML表單處理方式是使用Form集合物件取得表單欄位的內容,如下所示:user=Request.Form(user)pass=Request.Form(pass)程式碼取得user和pass欄位的值,在括號內的名稱就是表單欄位名稱。10-1-3表單如何傳遞資料-HTML表單欄位傳遞的資料表單欄位傳遞的資料文字方塊、密碼和文字區域直接傳遞使用者輸入的內容選項鈕、下拉式功能表傳遞HTML標籤value屬性的設定值核取方塊如果使用者勾選,傳遞”on”字串,沒有選擇不傳遞10-1-4URL參數傳遞資料URL超連結傳遞的參數或表單GET方法傳遞的內容,都是使用QueryString集合物件取得參數或欄位值,如下所示:name=Request.QueryString(Username)pass=Request.QueryString(Password)程式碼左邊是儲存傳遞資料的變數,在右邊括號內的名稱是參數或欄位名稱,這是一個字串。10-2伺服器的系統資訊10-2-1伺服器系統資訊的內容10-2-2Request.ServerVariables取得系統資訊10-2-1伺服器系統資訊的內容-說明Web伺服器的系統資訊是Request物件的集合物件ServerVariables這個集合物件可以取得伺服器的系統資訊。10-2-1伺服器系統資訊的內容-常用的Server變數1Server變數說明ALL_HTTP傳送到瀏覽程式HTTP通訊協定的檔頭內容ALL_RAW傳送到瀏覽程式的所有原始資料APPL_MD_PATHWeb應用程式的伺服器路徑APPL_PHYSICAL_PATHWeb應用程式的實際路徑AUTH_PASSWORD使用者認證的密碼AUTH_TYPE伺服端的認證方法AUTH_USER使用者認證的使用者名稱CONTENT_LENGTH傳送給伺服器內容的長度CONTENT_TYPE傳送內容的資料型態為GET、POST或PUTGATEWAY_INTERFACE伺服端的CGI版本10-2-1伺服器系統資訊的內容-常用的Server變數2LOCAL_ADDR伺服器的IP位址PATH_INFO目前ASP.NET程式檔的路徑PATH_TRANSLATED目前ASP.NET程式檔的實際路徑QUERY_STRINGURL的參數資料REMOTE_ADDR使用者端的IP位址REMOTE_HOST使用者端的主機名稱REQUEST_METHODHTTP的請求方式是GET或POSTSCRIPT_NAME目前ASP.NET程式檔案的虛擬路徑SERVER_NAME伺服器的網域名稱或IP位址SERVER_PORTHTTP的埠號SERVER_PROTOCOLHTTP的版本SERVER_SOFTWARE伺服器的軟體和版本10-2-2Request.ServerVariables取得系統資訊如果需要取得指定的系統資訊,也就是取得環境變數的值,請直接使用Request物件的ServerVariables集合物件,如下所示:IPAddress=Request.ServerVariables(REMOTE_ADDR)strPath=Request.ServerVariables(PATH_INFO)如果需要顯示伺服器所有的環境變數,可以使用ForEach迴圈取得所有的環境變數,如下:ForEachServerVarInRequest.ServerVariablesstrValue=Request.Servervariables(ServerVar)Next10-3瀏覽程式的相關資訊-說明在ASP.NET是使用Request物件的Browser屬性達到相同的功能。因為客戶端瀏覽程式連線Web伺服器時,「HTTP使用者代理人標頭」(HTTPUserAgentHeader)資訊會傳送給伺服器,這個標頭資訊的內容是瀏覽程式的相關資訊,在ASP.NET程式可以使用Request物件取得集合物件,如下所示:DimhbcAsHttpBrowserCapabilities=Request.Browser10-3瀏覽程式的相關資訊-屬性1屬性說明Type瀏覽程式的種類,IE為InternetExplorer,Netscape為NetscapeNavigatorBrowser瀏覽程式的名稱Version瀏覽程式的版本MajorVersion版本小數點前的主版本編號MinorVersion版本小數點後的次版本編號Platform使用的作業系統平台10-3瀏覽程式的相關資訊-屬性2Frames瀏覽程式是否支援框架頁Tables瀏覽程式是否支援表格Cookies瀏覽程式是否支援CookiesVBscript瀏覽程式是否支援VBScriptJavascript瀏覽程式是否支援JavaScriptJavaApplets瀏覽程式是否支援JavaAppletsActiveXControls瀏覽程式是否支援ActiveX控制項10-4Server物件的使用10-4-1ASP.NET建立COM元件10-4-2取得伺服器路徑10-4-3伺服端網頁轉向10-4-4伺服端執行網頁10-4-1ASP.NET建立COM元件-說明雖然ASP.NET技術可以使用.NETFramework龐大的類別物件,不過我們還是可以自行使用COM元件來擴充ASP.NET功能,不只如此,如果使用者熟悉VB.NET、C++或Delphi等開發工具,使用者還可以自行建立COM元件,輕鬆擴充ASP.NET程式的功能。10-4-1ASP.NET建立COM元件-使用在ASP.NET程式建立外部COM元件前,需要在伺服器先安裝好元件,在安裝好後才能使用Server.CreateObject()方法建立所需的物件(一個元件可能內含數個物件),例如:舊版ASP3.0的FileSystemObject物件,如下所示:fso=Server.CreateObject(Scripting.FileSystemObject)程式碼建立FileSystemObject物件fso,參數是物件的ProgID字串,如果需要重新指定物件的內容,如下所示:fso=Nothing10-4-2取得伺服器路徑Web伺服器的目錄架構屬於虛擬目錄,其路徑也是虛擬路徑,如果想取得目前執行ASP.NET程式的虛擬目錄,請使用ServerVariables集合物件的PATH_INFO參數,如下所示:Request.ServerVariables(PATH_INFO)配合Server.MapPath()方法就可以轉換成實際路徑,其程式碼如下所示:strPath=Server.MapPath(Request.ServerVariables(PATH_INFO))如果需要取得指定ASP.NET程式或檔案的實際路徑,如下所示:strPath=Server.MapPath(/Ch10/Ch10-4-1.aspx)10-4-3伺服端網頁轉向-說明Server.Transfer()方法可以取代Response.Redirect()方法,因為Response.Redirect()需要與瀏覽程式進行較多次的通訊,需要先傳送訊息給瀏覽程式,告訴瀏覽程式需要載入新網址URL,瀏覽程式在接受請求後,再送一次URL請求到Web伺服器,最後伺服器才處理新URL來送回HTML文件。10-4-3伺服端網頁轉向-使用Response.Redirect()方法浪費較多的頻寬在瀏覽程式和伺服器間的通訊,Server.Transfer()方法轉向操作完全在伺服端完成,並不會浪費頻寬,其使用方式和Response.Redirct()方法幾乎相同,如下所示:Server.Transfer(Ch10-4-2.aspx)程式碼將會轉向到ASP.NET程式Ch10-4-2.aspx。10-4-4伺服端執行網頁Server.Execute()方法和Transfer()方法很相似,不過Execute()方法有些像VB.NET語言的主程式呼叫副程序,當轉向的ASP.NET程式執行完成後,還會回到呼叫轉向的ASP.NET程式,其程式碼如下所示:……Server.Execute(Ch10-4-4s.aspx)……程式碼在執行轉向到ASP.NET程式Ch10-4-4s.aspx,在執行完後還會回到上述程式碼,執行Server.Execute()方法的下一列程式碼。10-5ServerSideInclude10-5-1SSI的指令說明10-5-2使用SSI插入HTML文件10-5-3使用SSI插入ASP.NET函式庫10-5ServerSideInclude「SSI」(ServerSideInclude)指令可以在伺服端插入一些資訊到HTML文件或ASP.NET程式,用來設定訊息、環境變數、執行程式檔、取得檔案資訊或插入純文字檔的內容。10-5-1SSI的指令說明-指令SSI指令說明#co
本文标题:Request与Server物件
链接地址:https://www.777doc.com/doc-839963 .html