Gymterview
junior

Как можно предотвратить прямой доступ к JSP странице из браузера

Для предотвращения прямого доступа к JSP-странице из браузера достаточно разместить JSP-файлы в директории WEB-INF, которая защищена контейнером от прямого доступа по HTTP. Доступ к таким страницам возможен только через серверное перенаправление (RequestDispatcher.forward()).

Настройка в web.xml
<servlet>
    <servlet-name>Example</servlet-name>
    <jsp-file>/WEB-INF/example.jsp</jsp-file>
    <init-param>
        <param-name>exampleParameter</param-name>
        <param-value>parameterValue</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>Example</servlet-name>
    <url-pattern>/example.jsp</url-pattern>
</servlet-mapping>

Это стандартная практика в MVC-архитектуре: контроллер (сервлет) обрабатывает запрос, формирует модель и перенаправляет на JSP внутри WEB-INF. Пользователь не может обратиться к JSP напрямую, минуя контроллер. В Spring MVC view resolver автоматически ищет шаблоны в WEB-INF/views/.

На собеседовании: ответ одним предложением: поместить JSP в WEB-INF. Это показывает понимание безопасности и MVC-паттерна.