簡體   English   中英

Vaadin請求過濾器和過濾器鏈?

[英]Vaadin request filter with filter chain?

Vaadin中是否可以通過提供的VaadinSession掛接到請求鏈並在實際請求/響應周期附近執行操作? 當前,我使用javax.servlet.Filter ,但似乎VaadinSession.getCurrent()設置得更深一些,並且在過濾器本身中, chain.doFilter ()之前和之后chain.doFilter設置。

我找到了一種解決方法。 首先,我無法插入請求處理程序鏈,因為沒有這樣的結構。 為了模擬它,我將我的代碼分為請求前代碼和請求后代碼(在我看來這是可以的)。 我在普通的VaadinRequestHandler執行請求前的VaadinRequestHandler並返回false(以便繼續進行常規請求)。 請求后的內容轉到映射在web.xmljavax.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM