Я изучаю, как сделать сервлет 3.1 совместимым webapp, который будет работать на JBoss wildfly 10. Я использую maven для зависимостей, и я не уверен, что следующие зависимости делать точно, и если они включены/не включены в контейнер сервлетов:Какова цель javax.servlet.jsp-api
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
Я уже сделал некоторые погуглите и хотели бы проверку или завершение следующей информации:
- сервлет АФИ предоставляемый контейнером сервлетов, поэтому я могу добавить
<scope>provided</scope>
в Maven. Однако зачем мне включать эту банку? Какие классы или файлы будут иметь ошибки при удалении? - Я не уверен, что делает javax.servlet.jsp-api. Мой мирный пример, похоже, работает отлично, если я его не включаю. Что это делает? И мне нужно добавить
<scope>provided</scope>
или нет? - JSTL не предоставляется никаким контейнером сервлетов, поэтому он должен быть явно добавлен. Эта банка гарантирует, что и другие основные теги обрабатываются правильно в моих jsp.
Еще одна причина, по которой JSP API в ваших зависимостях заключается в использовании Eclipse; Eclipse любит, чтобы он был там, потому что он выполняет тестовую компиляцию ваших JSP-файлов для сканирования их на наличие ошибок, поэтому вы получаете ошибки в отношении идентификаторов типа 'PageContext' и других базовых JSP-типов, которые недоступны, если их нет. – Jules