我正在学习如何制作可在JBoss wildfly 10上运行的servlet 3.1兼容的webapp。我将maven用于依赖项,并且不确定以下依赖项到底能做什么,以及它们是否包含在servlet中。容器:
<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>
<c:xxx>
将提供的依赖项标记为将提供给编译时和测试类路径,而不是运行时类路径-就像您说的那样,容器将在运行时提供这些API的实现。
如果您正在开发Web应用程序,那么不使用Servlet API中的类(HttpServletRequest,HttpServletResponse,Filter等)的可能性就很小。尽管许多框架抽象了许多Servlet API,但仍可能需要您使用这些底层API。
是的,添加提供的范围。但是,只有在例如通过扩展javax.servlet.jsp.tagext.TagSupport创建自定义JSP标签时,才需要在编译时类路径中使用此标签(尽管标签文件提供了一种更现代的方式来创建自定义标签) 。
是的,是的。