2015-06-03 4 views
0

Для целей лесозаготовок, я переопределить метод обслуживания от HttpServlet так:Java HttpServlet, метод коррекции сервис, лучшие практики

@Override 
protected void service(HttpServletRequest req, HttpServletResponse resp) 
{ 
    logger.debug("enter servlet"); 
    logger.debug("Request Header: {}", MyHttpTools.requestHeaderToSting(req); 

    super.service(req, resp); 

    logger.debug("leaving servlet"); 
    logger.debug("Response Header: {}", MyHttpTools.responseHeaderToSting(resp); 
} 

Я нашел несколько мест в Интернете, где авторы говорят, «не отменяет обслуживание ».

Что вы думаете о моем подходе?

ответ

0

Ничто изначально не соответствует вашему подходу.

Авторы заявляют, что не переопределяют service() для бизнес-кода, вместо этого переопределяют doPost(), doGet() и т. Д..

0

Ваш подход правильный. Вы также можете выполнить регистрацию с помощью aspectJ.

1

Ничего плохого в вашем подходе, но вы можете сделать это в режиме «очиститель» (на мой взгляд), например. путем внедрения (и регистрации) javax.servlet.Filter или с использованием AspectJ или других подходов, которые чаще используются.

+0

спасибо, я буду смотреть на AspectJ. Я уже использую фильтры с отображением URL в моем приложении. – JimHawkins

0

Метод service() по умолчанию в HTTP-сервлет маршрутизирует запрос другому методу на основе метода передачи HTTP (POST, GET и т. Д.). Например, HTTP POST-запросы направляются на метод doPost(), HTTP-запросы GET направляются на метод doGet() и так далее. Это позволяет сервлету выполнять обработку данных запроса в зависимости от способа передачи. Поскольку маршрутизация выполняется в сервисе(), нет необходимости вообще переопределять службу() в сервлете HTTP. Вместо этого переопределите doGet(), doPost() и т. Д., В зависимости от ожидаемого типа запроса.

Для подробно плз пройти через эту статью: Sun Java System Web Server 6.1 SP6 Programmer's Guide to Web Applications

Смежные вопросы