Я пытаюсь понять Jetty;Jetty: сервлеты против обработчиков
Скажите, пожалуйста:
1) Когда лучше использовать сервлетов и когда Обработчики?
2) Могу ли я использовать разъемы с сервлетами для «модели нити за запрос»?
спасибо !!!
Я пытаюсь понять Jetty;Jetty: сервлеты против обработчиков
Скажите, пожалуйста:
1) Когда лучше использовать сервлетов и когда Обработчики?
2) Могу ли я использовать разъемы с сервлетами для «модели нити за запрос»?
спасибо !!!
В обработчиках Jetty обрабатываются запросы, которые идут через разъемы. Один из обработчиков, в частности ServletHandler
, позволяет Jetty поддерживать (в основном) сервлеты. Servlet - это переносная концепция Java EE, поэтому вы можете разрабатывать приложение более переносимым образом, если вы используете сервлеты в Jetty. С другой стороны, они, вероятно, принесут некоторые накладные расходы, поэтому вы можете захотеть реализовать Handler напрямую, чтобы обрабатывать запросы, поступающие через Connectors.
Если вы используете сервлеты в Jetty, вы можете положиться на модель безопасности сервлета, на поддержку сеанса и т. Д. Если это не нужно для вашего приложения, вам может быть лучше реализовать очень простой обработчик.
Одно интересное наблюдение, которое я нашел, когда играл с ним. Я имел причал-приложение (dropwizard.io) и здесь я планировал добавить обработчик после фактической (был специальным вариантом использования для него)
server.start()
с помощью org.eclipse.jetty.servlet.ServletContextHandler.insertHandler(HandlerWrapper handler)
он просто бросает illegalStateException: STARTED
если сервер уже начал , Из-за:
public void setHandler(Handler handler) {
if (isStarted())
throw new IllegalStateException(STARTED);
//..
Но в случае org.eclipse.jetty.servlet.ServletContextHandler.addServlet(ServletHolder servlet,String pathSpec)
он добавит ваш servlet
к существующей коллекции сервлета и все будет работать.
Спасибо, очень интересно. – Edward83
благодарит за отзыв! – Karan
@ Каран: Спасибо за репутацию! – Olaf
Большое спасибо за ваш ответ !!! – Edward83