今天 下载项目发现报错:找不到javax.servlet.annotation.WebServlet
查了一下,主要原因是这是servlet3.0之后的新特性,网上很多的解决办法是:导入tomcat7.0的运行环境包。虽然这个方式能够解决问题,但感觉这样做只是找到了解决方法。而没有理解解决方法。如果想真正理解解决方法,那么就要想通下面几个问题。
1.怎样应用servlet?
引入servlet的jar包。
2.那么如何引用servlet3.0的新特性?
引入servlet3.0以上版本的jar包
3.为什么说导入tomcat7.0的运行环境包不是根本上理解?
导入tomcat7.0的运行环境包,运行环境包里面包含了servlet3.0以上的版本,但同时tomcat7.0里面还有大量跟servlet不相关的jar包。所以,这个报错根本是和tomcat无关的报错,而是和servlet相关的报错。只不过tomcat的环境比servlet大,所以引入tomcat7.0的运行环境包刚好能把这个问题解决。可如果是maven项目那?
4.最好的解决方式
所以这个问题最好的解决方式,就是根据自己的实际情况,看自己的servlet版本包是怎样引入的。如果是直接通过tomcat运行包引入的,那么当然可以直接用tomcat7.0替换,或者把tomcat7.0下面的servlet版本包替换你当前的servlet包。如果是maven项目,修改自己的pom.xml文件
这是我目前使用的servlet配置: