Это вопрос не специфичный для Java. На Java, как и на любом другом языке, используются оба подхода. Когда вы разрабатываете web-сайт, например коллективный блог, типа Хабра, развитый фронтенд вам не нужен, вы можете не тратить ресурсы на его разработку, вам будет проще продвигать его в поисковых системах. Когда вы разрабатываете web-приложение, например онлайн-банкинг, типа online.sberbank.ru, вам нужен фронтенд, вам нужен SPA, так как пользователь ожидает такой же UX, как от десктопного приложения.