Сервлет отрабатывает 2 или более раз

209
11 ноября 2017, 11:07

Сайт написан на чистых сервлетах, никаких фреймворков не используется. При открытии любой страницы сервлет этой страницы отрабатывает 2 раза.

В чем причина?

Маппинг сервлетов в аннотациях. Например, для главной страницы:

Index.java

@WebServlet(name = "index", urlPatterns = {"/index.html"})
public class Index extends AbstractServlet {
    protected static char[] page;
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doResponse(request, response);
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doResponse(request, response);
    }
    @Override
    protected void preparePage(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
        StringBuilder stringBuilder = new StringBuilder();
        ... creating page from template ...
        setPage(stringBuilder.toString().toCharArray());
    }
}

AbstractServlet.java

public abstract class AbstractServlet extends HttpServlet {
    protected char[] getPage() throws ServletException, IOException {
        return (char[]) this.getClass().getField("page").get(this.getClass());
    }
    protected void setPage(char[] page) {
        this.getClass().getField("page").set(this.getClass(), page);
    }
    protected void doResponse(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter pw = response.getWriter();
        if (this.getPage() == null) {
            this.preparePage(request, response);
        }
        pw.write(this.getPage());
    }
    protected abstract void preparePage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
}
READ ALSO
Считывание Aztec кода на Android

Считывание Aztec кода на Android

Господа программисты, кто то сможет подсказать по считыванию штрих-кода? Как в приложении Сбербанка сделали считывание квитанции по налогам?

141
Работа с реализацией Validator

Работа с реализацией Validator

У меня есть такой валидатор:

151
docker arp сканирование.

docker arp сканирование.

Имеется микросервисное приложениеОдин из сервисов производит arp сканирование окружающей локальной сети с помощью скрипта

165
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'

Доброго всем времени суток, у меня проблема при попытки запустить или перестроить проект выдает ошибку

208