Java Servlet: структурирование старого webapp. Какие рамки или технологии?

99
11

Я разрабатываю веб-приложение (к сожалению, унаследованное) в java (которое работает на tomcat) с очень маленьким, но недостаточно организованным (по крайней мере, на этом конкретном проекте), группой, и позвольте мне начать с того, что мы не очень много опыта программирования сервлетов.

Проблема заключается в следующем.

У меня проблемы, так как количество сервлетов продолжает расти и возрастать, когда мы внедряем новые функции в этом webapp. У нас нет проекта, чтобы следовать и структурировать. Просто клинт, который случайным образом запрашивает новые функции с самого начала.

Я бы просто сказал, что наш web.xml беспорядок. Я думаю, нам следует избегать загрязнять web.xml так много с помощью нового сервлета каждый раз (сейчас около 800 строк, и это становится трудно поддерживать), но я не уверен, что я должен делать с этим.

Я изучаю разные возможности, но мы не можем позволить себе слишком много изучать, поэтому я бы хотел услышать какую-то идею или лучшие практики от людей с большим опытом, чем мы.

Я думал, что, возможно, мы должны использовать CORBA руду что-то вроде того, чтобы внедрить какой-то RPC. Поэтому, группируя общие функции в нескольких связках сервлетов, мы могли приручить хаос. Может быть, это хорошая идея?

Что я имею в виду, это нечто вроде нескольких сервлетов, которые представляют собой точки входа для запросов. Я хотел бы сгруппировать их по типу ответа, который они дают. Так, например, у меня есть сервлет, который обслуживает меня json после вызова другого класса, который фактически выполняет работу по извлечению данных, обрабатывающих данные. Или снова у меня будет сервлет, который будет обслуживать мне файлы, файлы, которые производят другой класс или сервлет. И так далее. Я правильно смотрю на проблему?

Я рассмотрел некоторые структуры, такие как DWR (Direct Web Remoting), но нам нужно будет интегрировать их с устаревшим webapp с уродливыми страницами jsp, полными скриптлета, и мы не можем позволить себе переходить на полные веб-страницы ajax за ограниченное время, которое мы для проекта. Нам нужно что-то более легкое.

Чем больше я ищу решение, тем больше меня путают и переполняют возможности, которые я нахожу (REST, ORB, RPC, JSON-RPC...), поэтому я прошу вас о помощи. Заранее благодарим за ответы и советы.

спросил(а) 2021-01-25T18:37:49+03:00 4 месяца, 4 недели назад
1
Решение
89

Привет, многие из ваших точек действительны, поэтому вы можете использовать новые фреймворки, такие как spring или struts но для этого требуется огромное изменение, так как будет добавлено/введено много новых уровней. Но если вы хотите просто прокатиться на многих сервлетах, вы можете/должны использовать MVC архитектура, подобная framework в дополнение к которой используется центральный controller(a main servlet) уровня controller(a main servlet) -this, просто возьмет на себя request и проверит его (например, switch case), как только switch case соответствует тому, что helper class/utility class должен вызываться через instance или statically после этого response должен также быть из этого класса helper/utility и должен быть отправлен на главный controller и этот главный controller отправит его в соответствующий jsps/html.

ответил(а) 2021-01-25T18:37:49+03:00 4 месяца, 4 недели назад
45

Вы должны обязательно взглянуть на структуру Spring, которая является стандартом де-факто для веб-разработки Java в настоящее время: http://projects.spring.io/spring-framework/


Play Framework также представляет интересную структуру, которая дает вам цикл разработки, подобный Ruby: https://www.playframework.com/

ответил(а) 2021-01-25T18:37:49+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема