日期:2014-05-18  浏览次数:20729 次

jsp能够获得server.xml里面的信息吗?
<Host   name= "localhost "   appBase= "webapps "   unpackWARs= "true "   autoDeploy= "true "   xmlValidation= "false "   xmlNamespaceAware= "false "   />

<Host   name= "www.xxx.com "   appBase= "webapps1 "   unpackWARs= "true "   autoDeploy= "true "   xmlValidation= "false "   xmlNamespaceAware= "false "   />

<Host   name= "www.yyy.com "   appBase= "webapps2 "   unpackWARs= "true "   autoDeploy= "true "   xmlValidation= "false "   xmlNamespaceAware= "false "   />


能否在某个jsp文件中获得
name= "localhost "   appBase= "webapps "
name= "www.xxx.com "   appBase= "webapps1 "
name= "www.yyy.com "   appBase= "webapps2 "
这些信息?




------解决方案--------------------
javax.xml
------解决方案--------------------
1.request.getSession().getServletContext().getRealPath( "/ ")获取web server的路径,当然得到的路径还要处理,拿Tomcat来说,需要往回退到conf目录
2.从目录conf中读取server.xml文件,进行解析,获取Host节点以及其属性信息
------解决方案--------------------
通过指定物理位置,是可以的.例如知道server.xml在H:\tomcat-xx.xx\conf\server.xml,就可以利用XML API或者仅仅是java.io.File来获得该文件的内容.
------解决方案--------------------
在Web根应用目录下,不能获取服务器硬盘上的文件,除非安装ActiveX控件.通过www.xxx.com/WebRoot获取到tomcat/conf是没有可能的.
------解决方案--------------------
loveyt(咆哮的独角兽^大家都在长大):怎么不可能呀,我访问我自己服务器上的文件有什么不可以的? 我绝对路径都知道,还有什么不能访问的...
------解决方案--------------------
LS
你自己清楚的情况下,当然是可以通过getRealPath推断出server.xml位于上层目录的conf下.问题在于,Web应用不是总部署在webapps下的,我的意思是没有一个通用的方法可以通过web应用程序获得server.xml的位置,只能针对特定的单独的服务器来写这个绝对路径.
------解决方案--------------------
Top loveyt(咆哮的独角兽^大家都在长大)
说的有道理,web应用不总是部署在webapps下,所有没有通用的方法去得到这个配置文件!