在学习完第三章后(第三章提供的web应用是helloaapp,我将其放到了tomcat/webapps中),对Context元素的作用理解不深;但是当进入第四章后,发现第四章提供的源码包中也有一个叫helloapp的web应用实例。这下就遇到问题了:
如果要使用第四章提供的helloapp实例,那么势必也要将此目录放到tomcat/webapps中,这样就和第三章上已放入此目录中的同名目录冲突了。怎么办?总不能用哪个才放哪个吧?这样也太麻烦了。 于是,我想到了第三章介绍的Context元素,书上说利用此元素可以“更加灵活地发布web应用”。
我是这样做的:
1.删除tomcat/webapps中被我放置的helloapp目录;
2.找到随书的CD中对应源代码的目录位置(注:我已经将CD的内容全盘拷贝到/media/Develop/Apache+PHP+MySql_Develop/TomCat+JAVADEV_CD目录),即第三章的helloapp的位置是:/media/Develop/Apache+PHP+MySql_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter03/helloapp;而第四章的helloapp的位置是:/media/Develop/Apache+PHP+MySql_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter04/helloapp
3.定义context文件:tomcat/conf/Catalina/localhost/helloapp3.xml 和 tomcat/conf/Catalina/localhost/helloapp4.xml
在tomcat/conf/Catalina/localhost/helloapp3.xml中编写内容为:<Context path="/helloapp3" docBase="/media/Develop/Apache+PHP+MySql_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter03/helloapp" reloadable="true"/>
在tomcat/conf/Catalina/localhost/helloapp4.xml中编写内容为:<Context path="/helloapp4" docBase="/media/Develop/Apache+PHP+MySql_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter04/helloapp" reloadable="true"/>
4.这样,就可以产生如下效果了:
当访问 http://localhost:8080/helloapp3/login.htm,就可以访问上述 chapter03/helloapp中的对应文件了;
当访问http://localhost:8080/helloapp4/info?username=tom,就可以访问上述 chapter04/helloapp中的对应文件了(当然,这里是遵循了对应的web.xml中的相关配置,进而访问到servlet类了);
哈哈,这样以后就轻松咯......
《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置,布布扣,bubuko.com
《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置