Если у меня есть сервлет, я могу передать jsp в папке WebContent без проблем:
request.getRequestDispatcher("page.jsp").forward(request, response);
причем запросом является HttpServletRequest и ответ, являющийся HttpServletResponse.
Теперь для вопроса: Что, если я хочу использовать пакет функцией? Таким образом, переместите page.jsp в тот же пакет как мой класс сервлета так, чтобы все файлы для одной "функции" были в том же месте. Действительно ли это возможно?
Если у вас есть класс сервлета MyServlet в пакете foo, он будет доступен в WEB-INF / classes / foo / MyServlet. Теперь, если вы хотите иметь JSP в том же пакете, вам нужно, чтобы JSP находился в папке /WEB-INF/classes/foo/page.jsp. Затем вы можете перейти к JSP, например,
request.getRequestDispatcher("/WEB-INF/classes/foo/page.jsp").forward(request, response);
Контейнеры JavaEE не будут обслуживать ресурсы из jar. Если бы вы хотели упаковывать по функциям, вам пришлось бы предварительно скомпилировать ваши JSP и поместить их в тот же пакет, что и другие сервлеты для вашей функции. Предположив, что вы это сделали, вы не сможете обслуживать любые статические ресурсы из jar, такие как изображения, css или javascript.
Если вы действительно хотите пофантазировать, я полагаю, вы можете написать сервлет общего назначения, который будет обслуживать ресурсы из jar. Но я полагаю, что это будет довольно сложно и быстро приведет к незначительному выигрышу.