Tomcat配置虚拟路径,使上传文件与服务器及工程文件分离开

   使用Tomcat虚拟路径可以达到一个怎样的效果呢?简单说你可以把上传的文件放在你想发的任何一个地方,同时可以自己区分
下文件的类型,图片文件专门放一个地方,压缩包文件放另一个地方。

其实如何配置非常简单,这里以window环境来说明!

首先找到tomcat目录下conf目录下的server.xml文件

在server.xml文件中找到<Host></Host>

然后在其中加上这两句
             <Context path="/demo/file" docBase="D:\demo\File\file"></Context>
             <Context path="/demo/image" docBase="D:\demo\File\image"></Context>
解释下这两句话的意义

以tomcat在本机跑为例 一般是http://localhost:8080

当你访问http://localhost:8080/demo/file/xxx.zip或者是http://localhost:8080/demo/image/xxx.jpg
的时候,tomcat就会把请求转发,去请求tomcat所在的物理机上的D盘下D:\demo\File\file下的xxx.zip文件和xxx.jpg
文件

当文件上传的时候只需要把相应的文件存放到相应的目录中在数据库中存放文件的路径:

这里最好在数据库中存放xxx.zip 或者xxxx.jpg这样的文件名

为什么?

这样更方便服务器迁移!比方说你tomcat服务器需要切换到另一台物理机上,那么原先存放在数据库中的全地址就不可以用了

所以,比较好的方法是 服务器地址信息可以使用配置文件来管理,请求文件的全地址就后台拼装好即可,这样就算要做迁移 ,

也只是改改配置文件,把文件拷贝一份到新的物理机上,其他无需改!

还有一点需要注意下:

我们在做测试的时候,开发工具都是使用Eclipse,Eclipse有个比较恶心的地方就是每次重新启动tomcat的时候会把tomcat

中的配置信息重置一遍!所以导致看不到效果!稍微注意下。

以上纯粹个人愚见,仅供参考!

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
             <Context path="/demo/file" docBase="D:\demo\File\file"></Context>
             <Context path="/demo/image" docBase="D:\demo\File\image"></Context>
      </Host>


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。