[英]Vaadin request filter with filter chain?
Vaadin中是否可以通過提供的VaadinSession
掛接到請求鏈並在實際請求/響應周期附近執行操作? 當前,我使用javax.servlet.Filter
,但似乎VaadinSession.getCurrent()
設置得更深一些,並且在過濾器本身中, chain.doFilter
()之前和之后chain.doFilter
設置。
我找到了一種解決方法。 首先,我無法插入請求處理程序鏈,因為沒有這樣的結構。 為了模擬它,我將我的代碼分為請求前代碼和請求后代碼(在我看來這是可以的)。 我在普通的VaadinRequestHandler
執行請求前的VaadinRequestHandler
並返回false(以便繼續進行常規請求)。 請求后的內容轉到映射在web.xml
的javax.serlvet.Filter
。
其次,如果其他人遇到相同的問題,並且代碼也可以使用相同的模式進行拆分,則以下是請求前列表(vaadin端):
public class MyVaadinServlet extends VaadinServlet{
@Override
protected VaadinServletService createServletService(DeploymentConfiguration deploymentConfiguration) throws ServiceException {
VaadinServletService service = new VaadinServletService(this,
deploymentConfiguration){
@Override
protected List<RequestHandler> createRequestHandlers() throws ServiceException {
List<RequestHandler> handlers = super.createRequestHandlers();
handlers.add((session, request, response) -> {
// HERE GOES THE CODE
return false;
});
return handlers;
}
};
service.init();
return service;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.