我面临这个问题一个月,在server.xml中放置上下文标记并不安全,这会影响为所有其他主机部署的上下文元素,对于大型应用程序,连接错误也没有很好的隔离,例如,您可以通过文件夹名称domain2访问其他站点.com / domain1文件夹!还将数据库会话连接加载两次!另一种方法是将ROOT.xml文件放入具有上下文标记的完整路径,例如:
<Context path="" docBase="/var/lib/tomcat7/webapps/ROOT" />
在conf / catalina / webappsfoldername中并将war文件部署为webappsfoldername中的ROOT.war并指定主机,例如
<Host name="domianname" appBase="webapps2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
</Host>
在这种方法中,对于相同类型的应用程序,用户会话也没有很好的隔离!您可以在app1内,如果app1与app2相同,则在通过服务器端会话登录后可以自动登录到app2吗?因此,您必须将用户会话保留在客户端缓存中,而不要使用jsessionid!我们可以将引擎名称从localhost更改以解决它。但是可以说和tomcat一起玩比和其他猫一起玩需要更多的时间!