1: You can config the Context in place of below:
i:$CATALINA_BASE/conf/context.xml
ii:$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default
iii:$CATALINA_BASE/conf/[enginename]/[hostname]/[contextPath].xml
iv:$APPLICATION/META-INF/context.xml
v: $CATALINA_BASE/conf/server.xml
2: Not to recommend to config Context in server.xml . The reason can look at http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
3: i and ii above is common type . you can not config the private information (example: docBase and path ) on here . (if you add the docBase or path attribute that it will be ignore . i think maybe throw exception when tomcat startup if you add some particular attribute . But i not sure). That is logical , because you should not set a path attribute for a particular application in common configuration .
4: iii above is private type . The Context configuration on here that correspond a particular application . so you can config the private attribute ,example docBase and path . All attribute on here will override the common Context configuration (i just test some attribute of context element but not all . But i think all attribute will be override ).
5: iv above is private type too. The Context configuration on here that correspond current application . so you no need to specify the docBase and path attribute . the value of path is application's name. if you specify the doBase or path that will be ignore .Note: this context.xml will be copy to $CATALINA_BASE/conf/[enginename]/[hostname]/ and rename to [application's name].xml . Once this file exists, it will not be replaced if a new application with the same name and with /META-INF/context.xml file. The file will not be delete automatically if you undeploy the application.