Где, помимо web.xml, вы могли бы указать своему веб-приложению отображать запросы на сервлет?

Я новичок в java web dev. Я провел свое исследование, но все еще не мог понять это самостоятельно.

Я пытаюсь проанализировать проект, он объединяет spring, struts и hibernate. Spring для POJO и разработки базовых приложений, struts, по-видимому, используется для обработки запросов и более "веб-" части проекта, в то время как hibernate вместе с hql используется для взаимодействия с базой данных.

Мне было очень, очень любопытно, как работает поток информации, особенно для метода публикации. В результате длительных, но полезных исследований выяснилось, что после выхода из туннеля TLS / SSL расшифрованные запросы http (расшифрованные, поэтому часть «s», вероятно, больше не существует, lol) (которые являются текстами ascii) будут отправлены в контейнер для объектов java (созданных из классов java, вероятно, скомпилированных). И эти объекты обычно называют сервлетами (поправьте меня, если я ошибаюсь).

Загадочная часть всплывает, когда я пытаюсь понять, как контейнер решает, к какому сервлету он передает запросы. Опять же, при исследовании выяснилось, что он обычно обрабатывается конфигурационным файлом с именем web.xml, но, как ни странно, я не смог найти ни одного тега в этом файле, как предполагалось, не говоря уже о сервлете с именем, которое соответствует "target". "имя, указанное в свойстве действия, как показано ниже:

<form action = "<%=context %>/handler/register"  method = "post">

Тем не менее, весь проект отлично работает на сервере Tomcat. единственный вывод, который я могу сделать, состоит в том, что должны быть другие способы настройки «контейнера Java-объекта» на сервере tomcat для обработки пользовательских запросов. Какие они? / Что это?

Также в моем понимании могло быть много неправильного понимания, например вся часть java-class-object, поправьте меня, если я ошибаюсь, будьте добры.

Непонятно, какую часть вы хотите исследовать больше? Можете ли вы помочь понять, какой из них вы хотите знать 1. Как контейнер разрешает запрос? 2. Как сервлет или серверный компонент настраивается в вашем сценарии spring + strut + hibernate? 3. Как действие формы html / UI перенаправляется на метод post, определенный для сервлета, отображаемого с помощью обработчика / регистра?

Rizwan 01.05.2018 12:29

Здравствуйте, спасибо за ваш ответ, если я могу выбрать только 1, я бы сказал, что это номер 1, как, черт возьми, контейнер знает, какой serverlet передать только что полученный запрос. Я знаю один стандартный способ сделать это - использовать тег <serverlet> и определить все в web.xml, но в моем проекте web.xml такого нет.

Akuzuki29087 01.05.2018 12:42

Как выглядит веб-структура / структура папок вашего приложения. Это может помочь? stackoverflow.com/questions/3106452/…

Rizwan 01.05.2018 16:19

Вам действительно стоит прочитать спецификация сервлета. Он вполне читабелен и ответит на все вопросы, поставленные выше.

Christopher Schultz 06.05.2018 17:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
41
1

Ответы 1

Начиная с версии 3.0 спецификации сервлетов, вы также можете использовать аннотации, чтобы сообщить серверу, где находятся ваши сервлеты.

В коде вы ищете что-то вроде:

@WebServlet("/handler/register")
public class SomeRandomServlet extends HttpServlet

Другие вопросы по теме