Обычно вы создаете сервлет для каждого варианта использования. Сервлеты действуют как контроллеры для вашего приложения. Когда вы идентифицируете взаимодействие от пользователя, тогда реализуйте сервлет для управления этим взаимодействием.
То есть, если вы используете простой сервлет / JSP для создания сайта. Если вы используете структуру, подобную Struts, вы обнаружите, что они реализуют шаблон фронт-контроллера и используют один сервлет, который получает все запросы и перенаправляет эти запросы классам действий, которые реализуют действительную логику пользовательского запроса. это гораздо сложнее сделать самому, но это хорошая практика ... это причина, почему так много людей используют эти фреймворки.
Итак, короткий ответ: вы создадите много сервлетов для каждого веб-приложения, поскольку каждое веб-приложение будет содержать несколько вариантов использования.
[РЕДАКТИРОВАТЬ] Перечитывая ваш вопрос, кажется, что вы используете термин site для обозначения страницы или просмотра. Опять же, это зависит от того, что происходит с этой точки зрения. Например, чтобы отобразить самую новую запись в блоге, у вас может быть сервлет, который создает список записей из базы данных для отображения. Если пользователь нажимает на запись, другой сервлет может получить эту запись для просмотра и так далее. В основном, каждое действие - это сценарий использования, поэтому это отдельный сервлет.