关于servlet-api.jar和jsp-api.jar的选择和使用

Posted xsjzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于servlet-api.jar和jsp-api.jar的选择和使用相关的知识,希望对你有一定的参考价值。

选择哪个依赖

javax包下都是jdk提供接口规范,由第三方服务器厂商自己来实现。
jsp-api的依赖发生如下了2次迁移:
javax.servlet.jsp-api==>javax.servlet.jsp.jsp-api==>javax.servlet.jsp.javax.servlet.jsp-api
所以最新的jsp依赖包应该是javax.servlet.jsp.javax.servlet.jsp-api
同样,servlet-api依赖也发生了如下迁移:
javax.servlet.servlet-api==>javax.servlet.javax.servlet-api
如果再发生迁移或弃用,请到maven中央仓库查看变更。

Maven中这样引入两个依赖:

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <javax.servlet-api.version>4.0.1</javax.servlet-api.version> // 请自行选择最新版本号
    <javax.servlet.jsp-api.version>2.3.3</javax.servlet.jsp-api.version>
  </properties>
<dependencies>
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>$javax.servlet-api.version</version>
      <scope>provided</scope>
    </dependency>
  <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>$javax.servlet.jsp-api.version</version>
      <scope>provided</scope> 
  </dependency>
</dependencies>

<scope>provided</scope>表示作用域为provided,即只在编译、测试环境下使用,该依赖包再运行时(比如JDK或像Tomcat这样的容器)中提供,不需要再打包(jar/war)时加进去,不然会和运行时的包冲突。

其他阅读

https://www.cnblogs.com/douJiangYouTiao888/p/6473879.html

以上是关于关于servlet-api.jar和jsp-api.jar的选择和使用的主要内容,如果未能解决你的问题,请参考以下文章

servlet在哪个包下

如何得到javax.servlet.jsp包

Tomcat中部署后JspFactory报异常的解决方案

Eclipse下用ant打包时怎么添加jar包

vue.js 打包后怎么部署到tomcat,页面空白

linux下 tomcat怎样指定JDK?