0

サーバー名、セッション ID ブラウザー情報を取得しようとしています...ログ用に MDC に情報を保持します。

このために、 の にリスナーを追加しようとしてRequestCycleonBeginRequest()ますIRequestCycleListener。次のようにクラスを追加しました。

public class RequestRListener implements IRequestCycleListener
{
  @Override
  public void onBeginRequest(RequestCycle cycle)
  {
      //TODO 
  } 
}

上記の情報を取得するためにリスナーを追加する場所はどこですか?

4

1 に答える 1

3

拡張するクラスWebApplicationまたは関数AuthenticatedWebApplication内。init()

リクエスト サイクル リスナーを取得し、新しいリスナーをリストに追加する必要があります。

したがって、要求された URI を出力したい場合は、次のようにします。

getRequestCycleListeners().add( 
new AbstractRequestCycleListener()
{       
    public void onBeginRequest(RequestCycle cycle) 
    {                   
        if( cycle.getRequest().getContainerRequest() instanceof HttpServletRequest )
        {
            HttpServletRequest containerRequest = 
                (HttpServletRequest)cycle.getRequest().getContainerRequest();
            System.out.println("URI="+containerRequest.getRequestURI() );
        }
    };
}
);

ブラウザー情報の取得は、要求だけでなく、ほぼどこでも行うことができます。

String userAgent = WebSession.get().getClientInfo().getUserAgent();
于 2013-05-20T13:11:57.100 に答える