说起来真是惭愧。在mac上配置tomcat环境时。tomcat6能正确运行。但是7,8都运行不了。具体表现是tomcat6访问127.0.0.1:8080可以显示那个界面,然而tomcat7和8都显示空白页,也就是什么都没有。
然后我去百度,找了很久没有办法。我接着想,会不会在eclipse上没问题呢?于是我在eclipse上弄了个小小的servlet,结果报错了。错误难以理解。我从各个方向去猜去查,最后在stackoverflow上看到了最标准的解答。
原来是java1.8上的jar包里面自动有一个叫servlet-api的包,这个包会被加载。在服务器端运行的时候,会导致错误。同时移植性也被影响了。
http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project
国内的网站这个问题居然没有能问过,也没有人回答。stackoverflow上明确说这是个简单的入门问题。真是醉了。
同时,不得不说下这个问题是真的弱智。
首先java的jar带有一个不该带有的东西,搞笑的是这个地方会直接导致bug。在tomcat版本对应不上的时候回直接报错。
其次,eclipse自动生成的web.xml也是有问题。会使用一个没有定义的标签。它使用了没有定义的东西,但是它自己却定义了弱智的真实含义。
到最后也只能实现在eclipse里面打开的服务器能访问,直接打开tomcat会404.