Java сервлет WebFilter и apache общий ServletFileUpload.parseRequest - PullRequest
0 голосов
/ 17 июня 2020

Я использую фильтр для проверки некоторых параметров в моем приложении. Это обычная вещь для сервлетов, поэтому я использую вместо этого фильтр.

@WebFilter("/ValidateParams")
public class ValidateParams implements Filter {

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpSession session = req.getSession(false);
        String param1 = req.getParameter("param1 ") == null ? "" : req.getParameter("param1 ").toString();
        if (validation) {
            chain.doFilter(request, response);
        }
    }
}

В одном из сервлетов вместо обычного request.getParameter() для получения параметров я использую apache commons fileupload для получения формы полей и полей файлов (у меня неизвестное количество входящих файлов)

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

Проблема в том, что если request.getParameter() вызывается в фильтре, parseRequest приведет к пустому list.

Я думаю просто исключить этот сервлет из фильтра и реализовать его собственную проверку. Но есть ли способ использовать фильтры и apache загрузку обычных файлов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...