servlet 2.5的寫法
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
version="2.5">
別以為看到這里就結(jié)束了,很可惜地告訴你,這段代碼是錯(cuò)誤的。不信你嘗試打開(kāi)一下這個(gè)鏈接http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd,你會(huì)發(fā)現(xiàn)是no page found。
那為什么tomcat6的范例程序能夠工作呢,那是因?yàn)樵趖omcat6的lib里面,已經(jīng)存在這個(gè)文件,所以也不需要從網(wǎng)絡(luò)上面抓取。其實(shí)你按照這個(gè)web.xml寫了servlet 2.5的程序,在tomcat6里面也是可以運(yùn)行的。
可是當(dāng)我使用eclipse+xmlbuddy的時(shí)候,問(wèn)題就出來(lái)了,因?yàn)閣eb-app_2_5.xsd一直不能下載,xmlbuddy一直報(bào)錯(cuò),并且沒(méi)有語(yǔ)法提示功能。通過(guò)搜索,我發(fā)現(xiàn)了web-app_2_5.xsd的真實(shí)地址其實(shí)是http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd,而它的namespace是http://java.sun.com/xml/ns/javaee,于是代碼應(yīng)該改成:
<web-app 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
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
留意一下不同的部分,其實(shí)是因?yàn)閟un把j2ee改名為javaee。
ps,另外附上servlet 2.4的寫法
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">