Да, вы можете это сделать.
Да, вам нужно загрузить исходный код (если вы не хотите читать байт-код в своем отладчике :)
), если вы используете Maven, то вы можете пусть maven сделает за вас загрузку
Это возможно сделать с помощью "стандартной" установки Jetty, но я считаю, что гораздо проще создать быстрый встроенный сервер Jetty для этих задач.Даже если вы не знакомы с встраиванием Jetty, это не сложно узнать, и поможет вам разобраться, как Jetty обрабатывает сервлеты.См. документацию по встраиваемой пристани
Расположение точки останова будет зависеть от того, какую именно версию Jetty вы используете, и как далеко вы хотите пройти внутрь Jetty.
Вы можете установить точку останова в конструкторе для HttpConnection
, которая позволит вам посмотреть, как Jetty читает из необработанного сокета TCP / IP, анализирует заголовки HTTP, а затем создает запрос и response объект для каждого HTTP-запроса.
Если вы просто хотите посмотреть, как работает диспетчеризация сервлетам (сопоставление запрошенных URL-адресов с сопоставлениями путей, создание новых сервлетов и т. Д.), Попробуйтеточка останова в ServletHandler.doHandle
Если вы хотите что-то промежуточное, то Server.handle
- хорошее место - это произойдет после того, как входящий поток будет проанализирован, но до того, как Jetty примет какие-либо решения о том, как запросдолжны быть обработаны.