ASP 講義 4: ASP 組み込みコンポーネント
著者:Eve Cole
更新時間:2009-05-30 19:58:14
最初の 3 回の講義では、主に ASP が提供する 4 つの組み込みオブジェクトを紹介しました。
応答オブジェクト: ブラウザーに情報を送信します。
リクエストオブジェクト:ブラウザからサーバーに送信されるアクセス情報(フォームデータの取得など)。
セッション オブジェクト: 特定のユーザーの会話情報を保存および読み取ります。
アプリケーション オブジェクト: すべてのユーザーが共有するアプリケーション情報を保存および読み取ります。
さらに、Server オブジェクトと ObjectContext オブジェクトについては、今後の例で学習します (ヒント: 実際、学習した知識を意識せずにオンライン チャット ルームを作成するためにすでに使用できます)。この講義の内容は、ASPのActiveX Server Components(コンポーネント)の使い方です。
1. ブラウザ機能コンポーネント:
たとえば、ブラウザによってはフレームをサポートするものとサポートしないものがあることがわかっています。このコンポーネントを使用すると、ブラウザーの機能をチェックして、Web ページがブラウザーごとに異なるページを表示できるようにすることができます (フレームをサポートしていないブラウザーでは、フレームなしで Web ページを表示するなど)。このコンポーネントの使用は非常に簡単です。このコンポーネントを正しく使用するには、Browscap.ini ファイルが最新であることを確認する必要があります (実際、すべてのブラウザとその機能がこのファイルにリストされています)。それ以外の場合は、結果が大きく異なる可能性があります。たとえば、次の例では、Win98 の 2 番目のバージョンに含まれる IE5.0 は Netscape として表示されます。このファイルは通常、Web サーバーの「WinntSystem32InetSrv」にあり、最新バージョンは http://www.asptracker.com/ または http://www.cyscape.com/browscap からダウンロードできます。
例: wuf22.asp
<html>
<本体>
注: コンポーネントの使用はオブジェクトの使用と似ていますが、コンポーネントは使用前に作成する必要がありますが、組み込みオブジェクトを使用する前に作成する必要はありません。
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
お待ちください......
<P>
<TABLE BORDER=1 CELLPADDING=10>
<TR><TD>ブラウザの種類</TD><TD><%=BrowsCap.Browser%></TD></TR>
<TR><TD>ブラウザのバージョン</TD><TD><%=BrowsCap.version%></TD></TR>
<TR><TD>テーブルがサポートされているかどうか</TD><TD><%=BrowsCap.tables%></TD></TR>
<TR><TD>ActiveX コントロールがサポートされているかどうか</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
<TR><TD>JavaApplet がサポートされているかどうか</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
<TR><TD>JavaScript がサポートされているかどうか</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>Cookie がサポートされているかどうか</TD><TD><%=BrowsCap.Cookies%></TD></TR>
<TR><TD>フレームがサポートされているかどうか</TD><TD><%=BrowsCap.Frames%></TD></TR>
<TR><TD>オペレーティング システム</TD><TD><%=BrowsCap.Platform%></TD></TR>
<TR><TD>VBScript がサポートされているかどうか</TD><TD><%=BrowsCap.vbscript%></TD></TR>
</テーブル>
<%BrowsCap = なしを設定%>
</BODY>
</HTML>
注: この例では、Server オブジェクトの CreateObject メソッドにも触れました。Server.CreateObject は、サーバーに登録されている ActiveX コンポーネントを作成するために使用されます (注: コンポーネントを作成するメソッドは他にもあります)。ただし、時間内にリソースを解放するには「Set Object = Nothing」を使用することを忘れないでください。これは習慣になるはずです。
2. ファイルアクセスコンポーネント
ファイル アクセス コンポーネントは、FileSystemObject オブジェクトと TextStream オブジェクトで構成されます。FileSystemObject オブジェクトを使用すると、ディレクトリとファイルを作成、取得、削除できます。TextStream オブジェクトは、ファイルの読み取りと書き込みの機能を提供します。
wf23.asp の例。強調: プログラムの実行結果を実践して比較することは、実践を通じてのみ理解を深めることができます。これは、プログラミング スキルを迅速に習得するための最良の方法です。
<%@ 言語=VBScript %>
<% 明示的なオプション
' 絶対パスに注意してください: C:Inetpubhomeaspwuf23.asp ホーム ページのパス: C:Inetpubhome
ディムパス、ファイル、FSO、CTF、Str、StrHTML、StrNoHTML
'CreateObject メソッドを使用して FileSystemObject オブジェクト FSO を作成します
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Path = Server.MapPath("test") 'テストの物理ディレクトリ(絶対パス)を返します
'この例に関する限り、次の文は上の文とまったく同じパスを返します。
'パス = Server.MapPath("asptest")
Response.Write パス & "<Br>"
FSO.FolderExists(Path) = false の場合、「フォルダーが存在するかどうかを判断する」
FSO.CreateFolder(Path) '新しいフォルダーを作成します
終了の場合
ファイル = パス & "asptest.txt"
'ファイル書き込み操作
If FSO.FileExists(File) = True then 'ファイルが存在するかどうかを判断します
'TextStream オブジェクト CTF の作成
Set CTF = FSO.OpenTextFile(File, 8, False, 0) 'ファイルを開きます。詳細については説明を参照してください
それ以外
Set CTF = FSO.CreateTextFile(File,False, False) '新しいファイル
終了の場合
CTF.Write "<P>最初の文字列; " '文字列を書き込みます
CTF.WriteLine "2 番目の文字列; " '文字列を書き込み、改行文字を追加します
CTF.Write "3番目の文字列; "
CTF.Close 'ファイルを閉じるための注意事項
'ファイルの読み取り操作
CTF = FSO.OpenTextFile(File, 1,,0) を設定します。
Do While CTF.AtEndOfStream <> True 'ファイルが終了するかどうかを判断します (ループ文)
Str = CTF.ReadLine '(毎回) 1 行読み取ります
StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf
StrHTML = StrHTML & Server.HTMLEncode(Str) & "<BR>" & VbCrLf
ループ
Response.Write StrNoHTML
Response.StrHTML の書き込み
CTF.閉じる
CTF = Nothing を設定 'オブジェクトを解放します
FSO = なしを設定します
%>
CTF = FSO.OpenTextFile(File, 8, False, 0)、括弧内の最初のパラメータはファイル名で、2 番目のパラメータは 8 で、元のファイルの後にコンテンツを追加することを意味します。1 の場合は、読み取りを意味します。 -only、2 の場合は元のファイルを書き換えます。3 番目のパラメータ false は、指定されたファイルが存在しない場合はファイルが作成されないことを意味します。True の場合は、指定されたファイルが存在しないことを意味します。存在する場合、ファイルは作成されます。4 番目のパラメータ 0 は、ASCII ファイル形式で開かれることを意味します。-2 の場合、元の形式で開かれることを意味します。
CTF = FSO.CreateTextFile(File,False, False)、2 番目のパラメータ false は既存のファイルを上書きしないことを意味し、True の場合は既存のファイルを上書き (OverWrite) することを意味します。false はファイル形式が ASCII であることを意味します。 、True は、ファイル形式が Unicode であることを示します。
Server オブジェクトの MapPath メソッドは、指定された仮想パスを実際のファイル パスに変換します。 MapPath は、「/」文字と「」文字を同じように扱います。
Server オブジェクトの HTMLEncode メソッドを使用すると、特定の文字列を HTML エンコードしたり、ブラウザで特定の文字を正しく表示できるようにしたりできます。上記の例では、エンコードされていない場合、「<P>」は表示されませんが、ブラウザではHTMLタグとして扱われ、実行結果を比較することができます。
実際、ファイル アクセス コンポーネントは、ファイル、フォルダー、ドライブの操作において比較的強力であり、この知識を使用する必要がある場合は、忘れずに使用してください。
さらに、今では、Web ページのカウンターを作成するのは簡単です。非常に多くの Web ページが無料のカウンターを提供しているのも不思議ではありません。どうでしょうか?グラフィカルなカウンターを自分で作成してみてください。最終決定権はあなたにあります。 (ちょっとした秘密: 私のホームページにはインスタンス wuf24.asp があります)
3. AD Rotator (広告反転コンポーネント)
最近、インターネットをサーフィンするときに、私が最も嫌いなのは他人のホームページの広告バナーであり、最も好きなのは自分のホームページの広告バナーです。広告バナーはスパムのようにどこにでもあり、防御するのが困難です。このようなゴミを自分で作成することもできます。ASP の AD Rotator コンポーネントは、Web ページを開いたりリロードしたりするたびに広告をランダムに表示します。この例は 3 つの部分で構成されています。
ルーチン wuf25.asp
<%@ 言語=VBScript %>
<% 明示的なオプション
薄暗い広告
'AD Rotator オブジェクトの作成
Set adr = Server.CreateObject("MSWC.AdRotator")
adr.Border = 2 'グラフィックスファイルの境界線のサイズを指定します
adr.Clickable = True '表示された画像がハイパーリンクかどうかを示します
adr.TargetFrame = "_blank" 'フレーム名を指定するかどうかのハイパーリンクを設定します。例: _TOP _NEW _PARENT
'表示される画像とハイパーリンクの設定を取得します - ファイル AdrSet.txt に設定されます
Response.Write adr.GetAdvertising("AdrSet.txt")
%>
AdrSet.txt の内容 (このファイルの内容ではなくコメントが続きます):
REDIRECT wuf26.asp 広告をクリックすると、wuf26.asp によって処理されます。
WIDTH 468 広告画像の幅
HEIGHT 60 広告画像の高さ
* セパレータ
広告画像の場所。ローカル グラフィック ファイルも使用できます。
http://www.163.com/ はリンクを指します。ハイパーリンクがない場合は、「-」を記述します。
NetEase テキストの説明
20は広告の相対的な重み、つまり表示頻度を示します。
http://www.sina.com.cn/
シナ.com
30
http://www.canon.com.cn/
キヤノン
50
この例では、3 つの画像 (画像サイズ 468X60) とリンクが 4 行あります。実際の使用では、同じ方法に従ってさらに画像を追加できます。
<% 'wuf26.asp
URL = Request.QueryString("url")
応答.リダイレクト(URL)
%>
wuf26.asp は最も単純な処理プログラムであり、実際のニーズに応じてコードをここに追加できます。
実行してみると、このコンポーネントの使用法も非常に簡単で、独自の AdrSet.txt ファイルを取得するだけであることがわかります。このコンポーネントを使用すると、今非常にトレンディーな Ad Exchange ホームページをデザインすることもできます。
4. コンテンツ リンク コンポーネント 明らかに、このコンポーネントはリンクに関連しています。このコンポーネントの具体的な使用方法をすぐに知りたい場合は、最初に古典的な例を引用した方がよいでしょう。インターネット上の本を読む場合、次のリンクに慣れていない必要があります: 第 1 章、第 2 章、...、前の章、次の章 (または前のページ、次のページ) など。ここで私たちがしなければならないことは、これらのリンク間のジャンプを簡単かつ迅速に設定する方法です。
まず、urllist.txt などのリンク リスト テキスト ファイルを作成します。
wuf23.asp 第 1 章: ファイル操作 (ファイル アクセス コンポーネント)
wuf28.asp 第 2 章: コンテンツ リンク コンポーネントの使用例
wuf22.asp 第 3 章: ブラウザ機能コンポーネント リンク URL アドレスと説明は Tab キーで区切られます。次の wuf27.asp は、urllist.txt 内のすべてのリンクを一覧表示するために使用されます。
<% @LANGUAGE = VBScript %>
<% 明示的なオプション %>
<html><head><title>コンテンツ リンク コンポーネントの使用法</title></head>
<本文>
<h2>目次: 主要なリンクは第 2 章であることに注意してください。クリックする必要があります</h2>
<ul>
<%
ディムネクストリンク、カウント
'コンテンツリンクコンポーネントの作成
NextLink = Server.CreateObject("MSWC.NextLink") を設定します
'ファイル urllist.txt 内のリンクの数を取得します
カウント = NextLink.GetListCount("urllist.txt")
薄暗い URL、Dscr、I
I = 1 を数える場合
url = NextLink.GetNthURL ("urllist.txt", I) 'ハイパーリンクを取得
Dscr = NextLink.GetNthDescription ("urllist.txt", I) 'テキストの説明を取得
Response.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
次
%>
</ul></body></html>
次に、wuf28.asp を例として、前の章と次の章に自動的にジャンプする方法を説明します。
<% @LANGUAGE = VBScript %>
<% 明示的なオプション %>
<html><head><title>このリンクに注目してください</title></head>
<本文>
<p>これが第 2 章のテキストです....</p>
<% '自動リンクを実現するために、各ファイルには次の文が含まれています%>
<!--#include file="wuf29.asp"-->
</body></html>
ここに最後の文を追加すると、自動ジャンプが実現します。コアは wuf29.asp にあります。
<%
Dim NextLink、ランク
NextLink = Server.CreateObject ("MSWC.NextLink") を設定します。
「urllist.txt 内の現在のリンクは何ですか?」
ランク = NextLink.GetListIndex ("urllist.txt")
応答。「<hr>」と書き込みます。
If (rank > 1) then 'rank = 1 前のページはありません
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>前の章</a>|"
終了の場合
If (rank < NextLink.GetListCount("urllist.txt")) then 'rank が最後である場合、次のページはありません
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>次の章</a>|"
終了の場合
%>
この例を実行すると、このコンポーネントの役割をすぐに理解できるようになります。つまり、各ページに「前の章」と「次の章」を記述する必要はなく、完全に wuf29.asp を通じて行うことができます。あまり便利ではありませんか? !そうでなければ、リンクを手動で変更するのは非常に面倒ではありませんか?
インターネット上には、無料のカウンター、無料の掲示板、無料のチャット ルーム、広告交換ネットワークなどが数多く存在することを理解してください。その原則はこれにほかならないので、それらを崇拝する必要はありません。