ASPを使用してサーバー側のアプリケーションを記述する場合、ActiveXコンポーネントに頼って、以下などの強力なWebアプリケーションの機能に依存する必要があります。データベースに接続する、データベースをオンラインで操作する必要があります。
前の2つの記事では、著者は広告回転子の使用方法、データベースアクセス、その他のコンポーネントを紹介しました。
1.ブラウザ機能コンポーネントはよく知られており、すべてのブラウザが今日のインターネットテクノロジーのあらゆる側面をサポートするわけではありません。一部のブラウザがサポートする機能はいくつかありますが、ActiveXコントロール、画像ストリーム、動的HTML、フラッシュ、スクリプトプログラムなど、そうでない機能はありません。 ASPのブラウザ機能コンポーネントを使用して、スマートWebページを設計して、ブラウザのパフォーマンスに合った形式でコンテンツを表示できます。ブラウザ機能コンポーネントは、ユーザースクリプトにクライアントWebブラウザーの機能的な説明を提供するBrowserTypeオブジェクトを作成できます。このコンポーネントがクライアントブラウザのバージョンを認識できる理由は、主にクライアントブラウザーがサーバーにページリクエストを送信するとき、ユーザーエージェントHTTPタイトルを自動的に送信するためです。 。 弦。ブラウザ機能コンポーネントは、ユーザーエージェントをファイルBrowscap.iniに示すブラウザにマップし、Browsertypeオブジェクトのプロパティを介してクライアントブラウザを識別します。オブジェクトがbrowser.iniファイルのタイトルに一致するアイテムを見つけることができない場合、デフォルトのブラウザプロパティが使用されます。オブジェクトに一致が見つからず、デフォルトのブラウザ設定がbrowser.iniファイルで指定されている場合、各プロパティを文字列不明に設定します。デフォルトでは、browser.iniファイルはWindows/system/inerSrv(95/98+PWS4の場合)またはNT/System32/INERSRVに保存されます。独自の属性または最新のリリースされたブラウザバージョン更新ファイルに基づいています。次のCheckCookie()プロセスを参照してください。BrowserCapオブジェクトのCookie属性を使用して、クライアントブラウザーがCookieをサポートし、情報を返すかどうかを判断してください。
<%
sub checkcookie()
browsercap = server.createobject(mswc.browsertype)を設定します
browsercap.cookie = trueの場合
Response.WriteブラウザはCookieをサポートします!
それ以外
Response.Write申し訳ありませんが、使用しているブラウザはCookieをサポートしていません!
ifを終了します
End Sub
%>
ブラウザ機能コンポーネントの詳細については、Dynamic WebサイトのDesign Eneeven Martial Arts-Asp(2)を参照してください。
2。ファイルアクセスコンポーネントネットワークに十分な年齢がある場合は、Webゲストブックの最も早いプロトタイプである恐竜時代のCGIゲストブックを見た必要があります。当時、インターネットベースのWebアプリケーションのサーバーバックエンドデータベースに接続することは非常に困難でした。そのため、ゲストブックの履歴情報は、今日のようにバックエンドデータベースに保存されていませんでした。では、これらのデータはどこに保存されていますか?回答は、CGIプログラムがクライアントから受信した情報をサーバーに保存することができるため、プログラマーが同じデータベースを介して接続できません。顧客情報は保存できますが、このようなCGIプログラムを書くことは非常に面倒です。
#!/usr/local/bin/perl
#perl位置1つのサーバー
印刷コンテンツタイプ:テキスト/プレーン/n/n;
if($ env {'request_method'} eqpost){
read(stdin、$ buffer、$ env {'content_length'});
} elsif($ env {'request_method'} eqget){
$ buffer = $ env {'query_stirng'};
}
@ペア= split(/&/、$ buffer);
foreach $ pair(@pairs){
($ name、$ value)= split(/=/、$ペア);
$ value = 〜Tr/+//;
$ value = 〜s/%([af af 0-9] [af af 0-9])/pack(c、hex($ 1))/eg;
$ form {$ name} = $ value;}
$ file_name = guestbook.txt; #file name
#specificコンテンツ
open(file、>> $ file_name)||ファイルを開くとエラーが発生します。
ファイルの記録時間を印刷:$ date /n /n;
印刷ファイル名:$ form {'name'};
印刷ファイルユニット:$ form {'company'}/n;
ファイル電話の印刷:$ form {'Phone'}
ファイルアドレスを印刷:$ form {'address'}/n;
ファイル郵便番号の印刷:$ form {'zip'}
ファイルのメールアドレスを印刷:$ form {'email'}/n;
ファイル返品の印刷コメント:$ form {'content'}
close(file)
ASPと比較して、このタイプのCGIプログラムは読みやすさと操作性が低いと感じることができます。次に、ASPがサーバーに直接ファイルを書き込むことができるかどうかを尋ねたい必要がありますか?答えはもちろんそうです。しかし、Smart Friendsは、ASPデータベースとWebデータベースの接続が非常に便利だと思うかもしれませんが、なぜASPファイルに顧客情報を書く必要があるのでしょうか?実際、ゲストブックやBBSなどの一般的なWebアプリケーションでは、プログラムの実行効率や使いやすさの観点からテキストファイルを作成することはできませんが、フィールドでテキストファイルを作成する一部のWebアプリケーションでは、標準化されたものであり、データベースと比較して比較的便利な方法。 NTに精通している場合、NTには非常に強力なセキュリティメカニズムがありますWebで使用して、顧客ログイン情報を記録できます。次のプログラムでは、ASPの読み取りおよび書き込みテキストファイルの機能を使用して、Web BBSプログラムで各ユーザーのスピーチレコードを自動的に記録する関数を作成します。
<%
fs = createObject(scripting.filesystemObject)を設定します
forreading = 1
'読み取り専用モードでファイルを開きます。このファイルを書き込むことはできません。
forappending = 8
「ファイルを開き、ファイルの最後に書き込みます。
tristateusedefault = -2
tristatetrue = -1
tristatefalse = 0
'-----------------------------------------
servermap = server.mappath(/bbs/log/)
'マッピングシステム物理パス
temp = servermap&/&year(date)&month(date)&/
「システムの物理的なパスと時間を取得し、これをログファイルに保存されている物理パスとして使用します
fs.folderexists(temp)ではない場合
fs.createfolder(temp)
ifを終了します
'フォルダが存在するかどうかを確認します。それ以外の場合は自動的に作成されます
薄暗いsyslog
薄暗いtempname
tempname = date
syslog = temp&tempname&.log
'ファイル名はe:/bbs/log/month/month day.logです
li = user && now && request.servervariables(remote_addr)&& tempfile &&&lette && title
'ログファイルのレコード形式は次のとおりです。ユーザー名と時間&ユーザーIP&ファイルパス&メッセージエリアとレタータイトルの送信
fs.fileexists(syslog)の場合
sss = fs.opentextfile(syslog、forappending、true)をset
それ以外
sss = fs.createTextFile(syslog、forwriting、false)をset
ifを終了します
'ログファイルが存在する場合は、ファイルの内容を追加します。
Ss.WriteLine(l
私)
ss.close
'------------------------------------------------------------- -------------------------------------------------------------- ---------------------------------
%>
上記のプログラムを完全に理解していない場合は、著者の指示を聞いてください。ファイルアクセスコンポーネントは、コンピューターのファイルシステムにアクセスするために使用できるメソッドとプロパティを提供します。ファイルアクセスコンポーネントを使用して、上記のプログラムの最初の文を作成することです。オブジェクトが作成された後、オブジェクトを介してファイルにアクセスできます。ファイルSystemObjectオブジェクトには2つの一般的に使用されるメソッドがあり、1つはファイルを作成するために使用され、もう1つはテキストファイルを開き、読み書きするために使用されます。 createTextFileメソッドは、ファイルを作成して、ファイルを操作します。
objtextStream = filesystemObject.createTextFile(filename、[overwrite]、[unicode])を設定します。
著者は、以下のcreateTextFileメソッドのパラメーターを説明します
1.ファイルパス名を含む文字列は、ドライブ名とディレクトリ名を含むファイルのフルパス名になります。または、ファイル名のみが含まれている場合、ファイルは作成されます。サイトのルートディレクトリ。
2。falseに設定すると、このパラメーターがオプションになっている場合、ファイルシステムオブジェクトが既存のファイルを削除することを防ぎます。名前は削除されます。
3。ユニコードオプションパラメーター。ブール値は、UnicodeまたはASCIIファイル形式でファイルを作成するかどうかを示します。この値は、ファイルがUnicodeファイル形式で作成されている場合はTRUE、FALSEがASCIIファイル形式で作成されている場合はfalseです。このセクションが省略されている場合、ASCIIファイルが作成されると想定されます。
以前のプログラムでは、SS = Fs.CreateTextFile(Syslog、Forwing、False)を使用してファイルを作成し、ここにログファイルが存在しない場合にファイルを書き込みます。
createTextFileメソッドとは異なり、OpentextFileメソッドは、指定したファイル名を取得して、ファイルを使用してファイルを開きます。ファイルが開かれた後に操作できるように。 OpenTextFileメソッドの構文は次のとおりです。
objtextStream = filesystemObject.opentextfile(filename、[iomode]、[create]、[format])を設定します。
パラメーターは次のとおりです。
1.ファイル名は、createTextFileのファイル名と同じように、必要な変数です
2。次の2つの定数のいずれかの1つとして値が1の場合、モードが1の場合、ファイルが8の場合、ファイルが追加されます。
3.オプションのブール数を作成します。開くファイルが存在しない場合、操作が行われた場合、ファイルが存在しないときに空のファイルが自動的に作成されます。 FALSEの場合、ファイルが誤っている場合は、ファイルが誤りであることを推奨します。
4.オプションのフォーマット3つのTristate値を選択して、それぞれファイルの形式、-2、および0を指定できます。
テキストファイルを開いたり作成した後、ワードプロセッシングプログラムのカーソルのようにカーソルを備えたテキストストリームオブジェクトを取得し、入力するキャラクターがどこに表示されるかを示し、また必要な文字の位置も示します。読む。 TextStreamオブジェクトを介してTextStreamオブジェクトを作成することはできません。ファイルSystemObjectオブジェクトを使用して既存のテキストファイルを開くか、前述のように新しいファイルを作成することです。
TextStreamオブジェクトのプロパティと方法は以下にリストされています
TextStream.A
TendOflineの読み取り専用ブール数量、カーソルが現在の行の終わりにある場合、その値は真であり、そうでなければ偽です
TextStream.AtendofStream Read-Only Boolean数量、カーソルがストリームの終わりにある場合、その値は真であり、そうでなければ偽です
textStream.columnの読み取り専用整数、行の先頭から現在のカーソル位置までの文字の数を数えます
textStream.lineの読み取り専用整数カーソルが配置されているファイル全体のライン番号を示す
textStream.close()は、ストリームと対応するテキストファイルを閉じます
textStream.read(num)は、カーソルの現在の位置から始まるテキストファイルから特定の数の文字が読み取られることを指定します。
textStream.readall()は、ストリーム全体を文字列に読み取ります
textStream.readline()文字列全体を文字列に読み取ります
textStream.write(テキスト)ストリームに文字列を書き込みます
textStream.writeLine()は、テキスト文字列をストリームに書き込みます
textStream.skip(num)ストリームで、カーソルの位置を特定の数の文字列長で移動します
textStream.skiprine()ストリームで、カーソルを特定の数の行に移動します
textStream.writeblankは、一定数の空の行をストリームに書き込みます
行(num)
実際、ASPファイルのコンポーネントの強力な機能を感じることができますリモートサーバーに、ファイルアクセスコンポーネントを介してファイルを読み取り、HTMLファイルを1つずつ更新するために一生懸命働くことなく、新しいHTMLページを自動的に生成します。興味がある場合は、ASPのファイルアクセスコンポーネントを使用して、独自の完全に自動HTMLジェネレーターを作成して、Webサイトを維持する高度で簡単な感覚を完全に楽しむことができます。