Включение файла JSP из фильтра Java EE - PullRequest
1 голос
/ 09 июня 2011

Я пытаюсь добавить страницу JSP после окончания фильтра.У меня есть следующий код:

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws ServletException, IOException {
        try {            
            chain.doFilter(request, response);
        }
        finally {                                
                HttpServletRequest httpRequest = (HttpServletRequest) request;
                RequestDispatcher dispatcher = httpRequest.getRequestDispatcher("/WEB-INF/logging/logAppender.jsp");
                dispatcher.include(request, response); // This does not work!
                dispatcher.include(request, response); // The second time it works?                
        }
    }

Довольно простой фильтр, я думаю.Однако, как вы можете видеть выше, по какой-то причине вызовы include в первый раз ничего не делают.Я просто запутался и устал от отладки.Я пытался вызвать .flushBuffer (), getWriter (). Flush (), все виды close () и до сих пор не понимаю.Какие идеи будут полезны?

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Слишком много неизвестных и много вещей, которые можно выяснить только путем отладки, чтобы я мог дать какой-либо ответ. Хорошим ресурсом, который может вам помочь, является книга Мортсервола Марти Холла. Вы можете прочитать его бесплатно на http://pdf.moreservlets.com/. Прочитайте главу 9 о фильтрах.

0 голосов
/ 06 июля 2011

Вероятно, это потому, что вы передаете упакованный запрос и ответ диспетчеру запросов, попробуйте передать приведение к HttpServletResponse и HttpServletRequest

 dispatcher.include((HttpServletRequest) request, (HttpServletResponse)response) 
...