1
我正在使用ServletRequestListener從Web服務Java應用程序接收請求時執行某些邏輯。 在某些時候,我想停止收聽收到的每個請求。有沒有辦法通過編程停止或禁用ServletRequestListener監聽器?如何以編程方式停止ServletRequestListener?
我正在使用ServletRequestListener從Web服務Java應用程序接收請求時執行某些邏輯。 在某些時候,我想停止收聽收到的每個請求。有沒有辦法通過編程停止或禁用ServletRequestListener監聽器?如何以編程方式停止ServletRequestListener?
雖然可能add a listener programmatically,但不可能以編程方式停止或刪除偵聽器。最好你可以做的是讓它在繼續之前檢查一些應用程序範圍的變量,然後切換該應用程序範圍的變量。
E.g.
@Override
public void requestInitialized(ServletRequestEvent event) {
if (event.getServletContext().getAttribute("disableListener") == Boolean.TRUE) {
return;
}
// Do the original job here.
}
@Override
public void requestDestroyed(ServletRequestEvent event) {
if (event.getServletContext().getAttribute("disableListener") == Boolean.TRUE) {
return;
}
// Do the original job here.
}
,並禁用它,只是做
servletContext.setAttribute("disableListener", true);
,並重新啓用它,只是做
servletContext.removeAttribute("disableListener");