2017-12-22 8 views

答えて

2

コンポーネントの$スコーププロパティが明示的に設定されていない場合、それは自動的にグローバルスコープを持っています。

dynadminにコンポーネントブラウザでActorServletを見てみるとそれはそれはそれは、デフォルトでglobal範囲であることを示す必要がある設定明示的なスコープがないことを示しています。

もう少しこれを見ると、ActorServletは(RestPipelineServletの成分である)PipelineableServletインタフェースを実装PipelineableServletImplを拡張します。ここには抽象メソッドpassRequestがあり、実行されている実際のパイプライン 'チェーン'の一部を形成しています。

public abstract void passRequest(ServletRequest paramServletRequest, ServletResponse paramServletResponse) 
throws IOException, ServletException; 

これは、常に現在のrequestにアクセスできることを意味します。 PipelineableServletImplでは、内部でserviceメソッドが呼び出されます。

public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws IOException, ServletException { 
    //Insert your logic here 
    passRequest(pRequest, pResponse); 
} 

あなたが正常にserviceメソッドをオーバーライドしますし、そこに独自のロジックを追加しますが、それでもあなたに示すべき現在requestへのアクセス権を持っている、あなたの変数の残りの部分は、スレッドセーフです限り、パイプラインサーブレットをglobalスコープとして指定するのが正しい方法です。

関連する問題