1
我正在學習如何製作一個符合servlet 3.1的webapp,它將在JBoss wildfly 10上運行。我使用maven進行依賴關係,並且我不確定以下內容依賴做的正是,如果它們包含/不包含在servlet容器: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>
我已經做了一些谷歌搜索,並希望以下信息驗證或完成:
- Servlet API的是由servlet容器提供,所以我可以在Maven中添加
<scope>provided</scope>
。但是,爲什麼我需要包含這個jar?當我刪除它時,哪些類或文件會有錯誤? - 我不確定javax.servlet.jsp-api的作用。如果我不包含它,我的Hello World例子似乎運行得很好。這是做什麼的?我需要添加
<scope>provided</scope>
還是不? - JSTL不是由任何servlet容器提供的,所以它必須明確添加。這個jar確保和其他基本標記在我的jsp中正確處理。
在依賴關係中擁有JSP API的另一個原因是,如果您使用的是Eclipse; Eclipse喜歡它,因爲它執行JSP文件的測試編譯以掃描它們以查找錯誤,所以如果不存在,則會出現諸如「PageContext」和其他基本JSP類型不可用的標識符錯誤。 – Jules