アッシュ入門

1653 ワード

概要
一般的な処理プログラム(HttpHandler)は.netの多くのwebコンポーネントの一つであり、asxはその拡張子である。一つのhttpHandlerは一つのhttp要求を受け入れて処理して、javaのservletに類する。httpServletを継承するには.netでIhttpHandlerインターフェースを実現する必要があります。このインターフェースにはIsReusableのメンバーがいます。実現すべき方法はProcess Requestです。 。プログラムはprocessRequest方法で受け取ったHttp要求を処理します。メンバーIsReusableの使い方は後文で紹介されます。一つのhttp Handlerの例はこうです。
<% @ webhandler language="C#"class="AverageHandler" %> 
using System; 
using System.Web;
public class TestHandler : IHttpHandler 
{ 
public bool IsReusable { get { return true; } } 
public voidProcessRequest(HttpContext ctx) 
{ 
ctx.Response.Write("hello"); 
} 
}
ブラウザのアドレスバーでこのasxを要求すると、hello文字列が印刷されます。
ASxは第一期の要求の時にコンパイルします。プリコンパイルではなく、web.co.figで直接に対応するHttpHandlerを指定することをお勧めします。
IsReusable属性
IsReusableはIhttpHandlerインターフェースのメンバーであり、このメンバーの値は、このIhttpHnadlerの例が複数の要求を処理するために使用できるかどうかという意味である。MSDNは、他の要求がIHttpHandlerのインスタンスを使用できるかどうかを示すIsReusableについて説明している。
したがって、IsReusableをtrueとする前提は以下の通りです。
processHandler方法はスレッド安全を要します。
Request項に依存しない。asxでアクセスSession
自分のアシックス類を顕示的に実現させるインターフェースです。 IredOnlySession Stateの例は以下の通りです。
 
<% @ webhandler language="C#" class="DownloadHandler" %> 
using System; 
using System.Web; 
using System.Web.SessionState ; 
 
public class DownloadHandler : IHttpHandler,  IReadOnlySessionState 
{
public bool IsReusable { get { return true; }} 
public void ProcessRequest(HttpContext ctx) 
  { 
//  session
//ctx.Session["fred"]);
  } 
} 
Sessionの値を読むなら、実現すればいいです。 IrequiresSession State インターフェースでいいです。この二つのインターフェースはまだ実現する方法がありません。