原文链接:http://www.dubby.cn/detail.html?id=8740
之前Tomcat使用注意事项——Servlet版本,提到了不同的Tomcat支持的Servlet规范不一样,那么直接导致的结果就是,如果你的jar包中实现了javax.servlet.http.HttpServletRequest
,就意味着这个jar包不能兼容Tomcat。
怎么办呢?
继承javax.servlet.http.HttpServletRequestWrapper
吧,这个类是专为为了我们重写HttpServletRequest的某些方法工作的。
常见的servlet-api的版本如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
这样,不管项目中依赖的是哪一个,都可以兼容Tomcat的各个版本。
注:3.0.1之后的servlet-api移到了新的artifact下,建议使用新的:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0-b01</version>
<scope>provided</scope>
</dependency>