• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP講座之二:讀取通過表單發送的數據

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網 學習ASP,最重要的就是要掌握ASP內置的六大對象。事實上,在上一講中,我們已經了解了Response對象(是嗎?有沒有搞錯。,及Response對象中最常用的Write方法、Redirect方法和Expires屬性?吹綄ο、方法、屬性、集合、事件這些概念(俺一個都不識。,如果以前沒接觸過,聰明的您就不要管這些概念了,知道怎么用就行了,我的觀點是剛開始關鍵在于臨摹。下面我們繼續通過實例學習Request對象,為了加深理解,務請運行這些程序看看輸出結果。

    一、 使用Request.ServerVariables獲取環境變量,這部分內容很簡單,但獲取的內容卻很重要,如何獲?請看下例:
    <%@ Language=VBScript %>
    <HTML><BODY>
    <%  'wuf8.asp
    Response.Write "運行ASP文件的路徑: " &_
                    Request.ServerVariables("Script_Name") & "<Br>"
    Response.Write "返回content的數據長度: " &_
                    Request.ServerVariables("Content_Length") & "<Br>"
    Response.Write "返回客戶的IP地址: " &_
                    Request.ServerVariables("Remote_Addr") & "<Br>"
    Response.Write "瀏覽器名: " &_
                    Request.ServerVariables("HTTP_USER_AGENT") & "<Br>"
    Response.Write "返回主頁實際物理路徑: " &_
                    Request.ServerVariables("APPL_PHYSICAL_PATH") & "<Br>"
    %>

    <table colspan=8 cellpadding=5 border=0>
      <tr>
        <td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">環境變量名</font></td>
        <td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">內容</font></td>
      </tr>
      <tr>
        <td bgcolor="f7efde" align=CENTER> <font style="ARIAL NARROW" size="2">
          result1
           </font></td>
        <td bgcolor="f7efde" align=CENTER> <font style="ARIAL NARROW" size="2">
          result2
           </font></td></tr>
    </table>
    </BODY></HTML>
        Now,你應該發現上一講中的例程wuf2.asp原來是多么的easy!
        注意:該程序的后面一部分HTML標記純是為下面的例子作準備的,所以不要覺得奇怪。那么,還有哪些環境變量呢?運行下面的例子就知道了(本程序刪除了部分代碼,最好去我站點下載源程序便于理解)。
    <%@ Language=VBScript %>
    <%   ‘wuf9.asp
    Option Explicit
    Dim Sv
    %>
    <HTML><BODY>
    <table colspan=8 cellpadding=5 border=0>
      <tr>
        <td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">環境變量名</font></td>
        <td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">結果</font></td>
      </tr>
    <%
    for each Sv In Request.ServerVariables
    Response.Write "<tr>"
    Response.Write "<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
    Response.Write Sv
    Response.Write "</font></td>"
    Response.Write "<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
    Response.Write Request.ServerVariables(Sv)
    Response.Write "</font></td></tr>"
    next
    %>
    </table>
    </BODY></HTML>
    這里使用了For…Each循環,用來列舉一個集合中的所有元素。如果后半部分看不懂,請對照wuf8.asp,再瞧瞧運行結果,仔細體會一下(什么態度?)。

    二、 通過表單向服務器傳送數據(也可這樣理解,服務器端如何讀取客戶端發送的數據)
    做過主頁,應該知道很多主頁通常都使用Form表單讓用戶輸入數據,然后通過“submit(提交)”按鈕發送數據。From表單中的“method”有兩種主要方法:POST和GET,而“action”后一般都是指定一個.cgi、.pl或.asp文件,今天我們要學習的就是如果編寫這個.asp文件。
    (一) 如果使用POST方法傳送數據,則用Request.Form來讀取數據。
    先編輯如下一個wuf10.htm文件,供用戶輸入數據:
    <html>
    <body bgcolor="#FFFFFF">
    <form method="post" action="wuf11.asp">
      姓名: <input type="text" name="yourname"><br>
      性別: <select name="gender">
        <option>男</option>
        <option>女</option>
      </select> <br>
      留言: <textarea name="message">您好!
    注意多行文本的處理</textarea>  <br>
      愛好(按住Ctrl鍵可多選):
      <select name="hobby" multiple size="4">
        <option>電腦</option>
        <option>購物</option>
        <option>電影</option>
        <option>讀書</option>
      </select> <br>
      <input type="submit" name="Submit" value="提交">
      <input type="reset" name="Submit2" value="Reset">
    </form>
    </body>
    </html>
    再編寫一個wuf10.htm需用到的文件wuf11.asp收集數據:
    <%@ Language=VBScript %>
    <%   'wuf11.asp
    Option Explicit
    Response.Expires=0
    Dim StrName, StrGender, StrM, StrMsg

    StrName = Trim(Request.Form("yourname"))   'Trim函數用來除首尾空格
    StrGender = Trim(Request.Form("gender"))
    StrM = Trim(Request.Form("message"))
    StrMsg = Replace(StrM,vbcrlf,"<Br>" & vbcrlf)
    ' vbcrlf相當于回車符和換行符的組合。至于Replace函數,其作用就是將字符串StrM中的vbcrlf替換為"<Br>" & vbcrlf(請思考這個vbcrlf有什么用?查看輸出文件的HTML源碼就明白了),詳細請參考VBScript幫助。
    %>
    <HTML><BODY>
    姓名: <%= StrName%><Br><Br>
    性別: <%= StrGender%><Br><Br>
    留言: <Br><Br>
    <%= StrM%><Br><Br>
    <%= StrMsg%><Br><Br>
    實際上, "提交"按鈕的值也被傳遞: <Br>
    <%= Request.Form("Submit")%><Br><Br>

    <%  '先把上面看懂, 有興趣再看看如何讀取多個選項
    Response.Write "共選擇愛好項數:" & Request.Form("hobby").Count & "<Br>"
    Dim I
    For I = 1 to Request.Form("hobby").Count
    Response.Write Request.Form("hobby")(I) & "<Br>"
    Next
    %>
    </BODY></HTML>
    在這個的例子中,為了便于理解,我們使用了兩個程序,實際上只使用一個程序也可以,如果有興趣請看下面的例程wuf12.asp,有助于加深對環境變量的理解。
    <%@ Language=VBScript %>
    <%   'wuf12.asp
    Option Explicit
    Response.Expires=0
    Dim StrName, StrGender, StrM, StrMsg

    If Request.ServerVariables("Content_Length") <> 0 Then
    '提交數據后,這個長度就不會是 0, 因此執行下面的語句, 將結果顯示出來
    '下面一部分實際上是照搬 wuf11.asp

    StrName = Trim(Request.Form("yourname"))   
    StrGender = Trim(Request.Form("gender"))
    StrM = Trim(Request.Form("message"))
    StrMsg = Replace(StrM,vbcrlf,"<Br>" & vbcrlf)
    %>
    <HTML><BODY>
    姓名: <%= StrName%><Br><Br>
    性別: <%= StrGender%><Br><Br>
    留言: <Br><Br>
    <%= StrM%><Br><Br>
    <%= StrMsg%><Br><Br>

    <%
    Response.Write "共選擇愛好項數:" & Request.Form("hobby").Count & "<Br>"
    Dim I
    For I = 1 to Request.Form("hobby").Count
    Response.Write Request.Form("hobby")(I) & "<Br>"
    Next
    %>
    </BODY></HTML>

    <%
    Else
    '當第一次加載頁面時,沒有提交任何數據,故前面一部分并不執行,而是從這里開始
    '這也就是為什么會有兩對 <HTML></HTML> 的原因
    '下面照搬 wuf10.htm 就行了
    '<form method="post" action="wuf11.asp"> 給用環境變量替換掉了, 其實完全一樣
    Response.Write "看看結果: " & Request.ServerVariables("Script_name") & "<Br>"
    %>
    <HTML><BODY>
    <form method="post" action="<%= Request.ServerVariables("Script_name")%>">
      姓名: <input type="text" name="yourname"><br>
      性別: <select name="gender">
        <option>男</option>
        <option>女</option>
      </select> <br>
      留言: <textarea name="message">您好!
    注意多行文本的處理</textarea>  <br>
      愛好(按住Ctrl鍵可多選):
      <select name="hobby" multiple size="4">
        <option>電腦</option>
        <option>購物</option>
        <option>電影</option>
        <option>讀書</option>
      </select> <br>
      <input type="submit" name="Submit" value="提交">
      <input type="reset" name="Submit2" value="Reset">
    </form>
    </BODY></HTML>
    <%End If%>

        (二)如果使用GET方法傳送數據,則用Request.Querystring來讀取數據。
    先編輯如下一個wuf13.htm文件,供用戶輸入數據:
    <html>
    <body bgcolor="#FFFFFF">
    <form method="get" action="wuf14.asp">
      英文姓名: <input type="text" name="Ename"> <br>
      中文姓名: <input type="text" name="Cname"><br>
      性別: <select name="gender">
        <option>男</option>
        <option>女</option>
      </select>  <br>
      <input type="submit" name="Submit" value="提交">
      <input type="reset" name="Submit2" value="Reset">
    </form>
    </body>
    </html>
    再編寫一個wuf13.htm需用到的文件wuf14.asp收集數據:
    <%@ Language=VBScript %>
    <%   'wuf14.asp
    Option Explicit
    Response.Expires=0
    Dim StrCname, StrEname, StrGender

    StrEname = Trim(Request.QueryString("Ename"))   'Trim函數用來除首尾空格
    StrCname = Trim(Request.QueryString("Cname"))   
    StrGender = Trim(Request.QueryString("gender"))
    %>
    <HTML><BODY>
    英文姓名: <%= StrEname%><Br><Br>
    中文姓名: <%= StrCname%><Br><Br>
    性別: <%= StrGender%><Br><Br>
    看看提交的字符串: <Br>
    <%= Request.ServerVariables("Query_String")%>
    </BODY></HTML>
    為了更好地理解這個程序,你最好先在瀏覽器中試試例程wuf13.htm的效果,看看輸出的結果,你會發現地址欄中長長的字符串似曾相識,如同在Yahoo搜索時看到的差不多。這時,你試著在地址欄中直接輸入“http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女”,居然也得到了同樣的結果。所以你可以這樣看,wuf13.htm的結果就是得到了類似這樣的一個帶參數的鏈接。而Request.QueryString則是從http:// 地址的附加參數中讀取各個數據。
    實際上,當按“提交”按鈕后,查詢字符串(輸入的數據)會以參數的形式附加到URL地址后(各參數間以“&”分隔),達到傳遞數據的目的。同時,注意瀏覽器中顯示的查詢字符串中沒有中文,而是不認識的含百分號的亂碼,這是因為進行了編碼的緣故。最后,與前面一樣,這兩個程序也可合并為一個程序(例程wuf15.asp,需去我站點下載)。

    幾點說明:
    1. 若使用POST方法提交數據,則Request.ServerVariables("Content_Length")>0。
       若使用GET方法提交數據,則Request.ServerVariables("Query_String") <> ""。
    2. 弄懂原理后,你完全可以在同一個ASP文件中混合使用Request.Form和Request.QueryString。
    3. 如果在一個Form表單中,有幾個按鈕,你如何確定用戶按了哪個按鈕?如果留意的話,會發現例程wuf11.asp中有一句,“提交”按鈕的值也被傳送,而wuf13.htm中生成的查詢字符串最后也可以找到類似的值。請注意:只有被按按鈕的值被傳送,而其他按鈕的值為””,這就是判斷依據(《中計報》InfoWeb網站有一篇類似文章)。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>