Я знаю, что это может быть не вариант, но именно здесь сияет архитектура MVC или MVP. Он устраняет подход «веб-страницы» к разработке вашего веб-сайта и переходит к строго типизированному дизайну кода модели, используя «методы» для вызова нужной логики. Другими словами, в MVC не существует «физических страниц», только методы для объектов.
(Примечание: я НЕ разработчик Java, на самом деле C #, но вы можете понять)
URL:
/products/532
При переписывании URL это будет "веб-страница" и ее скомпилированный "код", такой как:
/products/showproduct.jsp?productid=532
/products/showproduct.java (code behind)
Но со страницами в MVC это будет:
/Controllers/ProductController.java <- ProductController.ViewProduct(int id)
/Models/ViewModels/Product.java <- Product() class
/Views/Product/Index.html <- very simple display of html.
ProductController выполняет поиск и получает ViewModel для Product (), связывает представление Index, заменяя любые отображаемые переменные, и, наконец, ProductController возвращает заполненный html клиенту.
Этот подход абстрагирует логику веб-страницы в код, которым можно управлять, создавать версии, объединять, разветвлять и т. Д. В вашем исходном хранилище.