servlet api

servlet api 用于支持Servlet的运行



 

 

-------------------

Servlet 版本进化历史

 

Ser vlet 3十二月2009开发平台标准版6,6可插性,易于开发,异步ser vlet,安全,文件上传
Ser vlet 2.5九月2005开发平台标准版5,5需要平台标准版5,支持注释
Ser vlet 2.4十一月2003中1.4,1.3 web.xml新解
Ser vlet 2.1十一月1998未正式规范,添加Dispatcher,Ser vlet Cont ext
Ser vlet 2类1.1部分程序开发工具包2
Ser vlet 1六月1997定义

 

 

对于我们来说,servlet 2.5足以,3.0版本的servlet看起来意义不大

 

servlet 2.5 版本对应的web.xml 如下定义

 

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


	...............
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

-----------------------

servlet-api 这套API定义了一系列接口规范,不同的厂商有不同的实现

 

	<dependency>  
            <groupId>org.mortbay.jetty</groupId>  
            <artifactId>servlet-api-2.5</artifactId>  
            <version>6.1.14</version>  
            <scope>provided</scope>  
        </dependency>  
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>

 

---------------------

如果servlet是通过Tomcat部署,容器自带servlet-api.jar,war包无需将servlet-api.jar打入其中



 

tomcat的servlet-api和Servlet 规范之间的对应关系:

 

 

 

项目如果用到了servlet-api,为了保证编译通过,需要加入servlet-api,但是必须将scope设置为provided,表示此jar包由容器(tomcat)负责提供

 

<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>

 

如果没有设置为provided也不会引发问题,因为class load遵循双亲委托,容器提供的servlet-api版本优先于war包中的servlet-api,

 

这就是我们为什么war包里面有servlet-api 2.5, javax.servlet-api 3.0 jetty servlet-api        都不会影响程序的正确运行

 

http://my.oschina.net/aminqiao/blog/262601

 

---------------------------

 如果错误的将servlet-api.-3.x.x版本引入,可能会给ECLIPSE构建带来问题,此时需要打开POm,从dependency hierachy中分析是否存在直接或者间接引入了servlet-api-3.xx的情况

 

 

 

 

猜你喜欢

转载自curious.iteye.com/blog/2286934