AASPは、CGIスクリプトプログラムを置き換えるためにMicrosoftが開発したアプリケーションです。データベースやその他のプログラムと対話できます。ここで、編集者は彼にいくつかの簡単な議論をします。次のコンテンツは、主にASPライティングコードの本質的な原則について説明しています。
1。VBScript変数を宣言します
ASPでは、VBScriptには強力なサポートが提供されており、VBScript関数とメソッドをシームレスに統合できます。 ASPではさまざまなタイプの概念が曖昧になっているため、多くのプログラマーは、ASPとVBScriptの間の相互作用中にVBScript変数を宣言しないことに慣れており、サーバーの解析負荷が増加し、サーバーの応答要求速度に影響します。
これを考慮して、ユーザーがVBで可変宣言を実行するように強制するのと同じように、ユーザーにVBScriptの可変宣言を実行させることができます。実装方法は、ASPプログラムラインの先頭に<%オプションの明示的な%>を配置することです。
2。URLアドレスをエンコードします
ASPを使用してパラメーターとジャンプを備えたURLアドレスを動的に生成する場合、IEで解析するのは普通ですが、NetScrapeを閲覧する場合、次のようにエラーがあります。
HTTPエラー400 400不正な構文のために悪い要求、リクエストはサーバーによって理解できませんでした。クライアントは、変更なしでリクエストを繰り返さないでください。
解決策は、ASPビルトインサーバーオブジェクトのURLENCODEメソッドを使用して、生成されたURLパラメーターをエンコードするURLです。例は次のとおりです。
<%url = "xur.asp" var1 = "username ="&server.urlencode( "xur")var2 = "&company ="&server.urlencode( "xurstudio")var3 = "&phone ="&server.urlencode( "021-53854336-186") &var1&var2&var3%>
3.オブジェクトをクリアします
オブジェクトを使用した後、最初に閉じる方法を使用して、オブジェクトが占有しているシステムリソースを解放します。次に、オブジェクト値を「Nothing」に設定して、オブジェクトのメモリを解放します。当時、私は明確なオブジェクトのないページに100を超えるレコードセットを作成することでIISをクラッシュさせました。次のコードでは、データベースコンテンツを使用してドロップダウンリストを作成します。コードの例は次のとおりです。
<%mydsn = "dsn = xur; uid = xur; pwd = xur" mysql = "select * au_id <100" set conntemp = conntemp = concheobject( "adodb.connection")conntemp.open mydsn set rstump = conntemp.execute(resub.execute(resump.execute) empty "respons.write mysql conntemp.close set conntemp = not nothing noting end end end end end restemp.eof%> <%rstemp.movenext loop rstemp.close set rstemp = nothing conntemp.close set conntemp = Nothing%>
4.文字列を使用してSQLクエリを作成します
文字列を使用してクエリを確立しても、サーバーの解析速度が高速化されません。それどころか、サーバーの解析時間も増加します。ただし、単純なクエリステートメントの代わりに文字列を使用してクエリを使用することをお勧めします。これの利点は、プログラムの問題をすぐに発見し、それによりプログラムを促進し、効率的に生成できることです。例は次のとおりです。
<%mysql = "" select * "mysql = mysql&" from publishers "mysql = mysql&" where state = 'ny' "respons.
5.ケースを使用して条件を選択します
条件付き選択を行うときは、ケースステートメントを使用して、ステートメントの使用を避けてください。ケースステートメントを使用すると、プログラムが流れやすくなり、ステートメントよりも速く実行できます。例は次のとおりです。
<%i = 1〜1000 n = i respons.write addsuffix(n)& "<br>" next%> <%function addsuffix(num)numpart = right(num、1)select case numpart case "1" if inst(num、 "11")then num = num& "th" ols num = num& "st" if num& "num&" num& "") END IF CASE "3" if If strust(num、 "13")then num = num& "" else num = num& "rd" end "end" 4 "num = num&" th "ケース
6. adovbs.incファイルで定義された定数を使用して、レコードセットを開きます
レコードセットを開くと、レコードセットが開くカーソルタイプとロックタイプを定義できます。
これらのタイプを定義するために、adovbs.incファイルに定義された定数がいくつかあります。 adovbs.incファイルは、/inetpub/iissamples/iisamplesディレクトリに保存されます。以下は、一般的に使用されるいくつかのカーソルタイプとロックタイプです。
カーソルタイプ:
ロックタイプ:
<! - #include virtual = "/adovbs.inc" - > <%connectme = "dsn = xur; uid = xur; pwd = xur" sqltemp = "select * from name = 'xur'" set rstemp = server.createobject( "adodb.recordset") adlockoptimstic respons.write rstemp.recordcount& "in <br>"&sqltemp rstemp.close set rstemp = Nothing%>
7。Global.asaファイルでオブジェクト定義を避けます
Global.ASAファイルの内容はサイト内のすべてのファイルによって参照できるため、間違いなく、Global.ASAファイルのオブジェクトを定義できます。
たとえば、Global.ASAのApplication_Onstart関数では、次の定義が行われます。
<%sub application_onstart set application( "theconn")= server.createObject( "adodb.Connection")End sub%>;
これにより、サイト上の任意のコードで同様の参照を作成できます。
<%mysql = "select * from publishers where state = 'xur' set rstemp = application(" theconn ")。execute(mysql)%>
同様に、レコードセットオブジェクトはsession_onstart関数で作成できます
<%Sub Session_OnStart Set Session( "rstemp")= server.createObject( "adodb.Recordset")End Sub%>
次に、次の引用がサイトで作成されます。
<%mysql = "select * from publishers where state = 'xur' set session(" rstemp ")= conntemp.execute(mysql)%>
ただし、これを行うことは大きなマイナスの影響もあります。アプリケーションとセッションの変数の両方が、ウェブサイトを閉じるときに占有されたリソースをリリースするため、セッションパラメーターは多くの不要なメモリを無駄にし、この時点でアプリケーション変数はサーバーのパフォーマンスのボトルネックになります。
解決:
オブジェクトを定義するASPページを作成し、これらのオブジェクトを呼び出す必要があるページにこのASPページを紹介します。定義されたオブジェクトのASPページ名が定義されていると仮定すると、ASPに対応するASPページに次のステートメントを追加することでページを紹介できます。
<! - #virtual = "/define.asp" - >を含める
ページを導入するときは、紹介するASPファイルに<%@leanguage = "vbscript"%>ステートメントを含めないことをお勧めします。 ASPファイルには、 @で定義された言語を解析するスクリプトが1つしかないためです。
8。安全保護
ASPは優れたコード保護メカニズムを提供し、すべてのASPコードがサーバー側で実行され、クライアントコードの実行の結果のみを返します。それでも、IISの古いバージョンでは、ファイル名:: $データの後にASPのソースコードを表示できます。以下は、2つの簡単な安全上の注意事項です。
拡張機能としてINC ASPを搭載したファイルを導入することをお勧めしますが、拡張機能としてASPを使用してファイルを導入することをお勧めします。これらのコードが、セキュリティメカニズムが不十分なWebサーバーで実行されると、アドレスバーに入力するだけでインポートされたファイルの内容を閲覧できます(Incは拡張機能です)。これは、Webサーバー上で、特定のタイプ(INCなど)を解決する動的接続ライブラリが定義されていない場合、ファイルがソースコードに表示されるためです。
データベースファイルをWebサイト構造内に配置しないでください。悪意のある人がデータベースパスを取得すると、データベースを簡単に取得してからデータベースコンテンツを任意に変更できます。より良いアプローチは、データベースのDSN(日付ソース名)を確立し、データベースにアクセスするときにDSNに直接アクセスすることです。
この記事を通して、ASPエンコーディングを理解していますか?それがあなたを助けることができることを願っています。