我们正在尝试获取服务器名称,会话ID浏览器信息...以将信息保存在MDC中以进行记录。
为此,我们尝试在RequestCycle
onBeginRequest()
的{{1}}中添加一个监听器。
我添加了一个类如下:
IRequestCycleListener
现在在哪里添加监听器以获取上述信息?
答案 0 :(得分: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();