zoukankan      html  css  js  c++  java
  • TOMCAT虚拟路径配置

    在tomcat安装好后,只要把你的web项目copy到%TOMCAT_HOME%webapp下面就可以是使用啦!!其实还有种方法就是设定虚拟目录,即把项目的目录映射到tomcat中。这样做即可以不用重复的部署,节约时间,而且给开发人员带来方便。
    方法如下:
    1,找到%TOMCAT_HOME%/conf/server.xml,(即tomcat的安装目录下面相关的文件)打开此xml文件,在 <host> </host>之间加入如下代码:

    <Context path="" reloadable="true" debug="0" docBase="E:/workspace/test/bin" workDir="E:/workspace/test/work" crossContext="true" >
    </Context>

    <Context path="/test" docBase="E:/aaa" debug="0" reloadable="true"/>

        docBase是实际路径,这里一般写一个绝对的磁盘路径,当然也可以写 相对路径,相对路径是相对于tomcat安装目录的webapps目录的,通常设置虚拟目录的目的是将tomcat的安装和项目的保存分开,所以这里建议你使用磁盘绝对路径,并且这个磁盘路径不时在tomcat安装目录下。workDir是tomcat运行是对JSP文件做编译后的文件,这个文件最好也是分开。
    path为虚拟路径,访问时的路径,注意:一定要加“/”。值得注意的是:path可以为 "/"那么访问“IP:端口”就可以访问到布置的工程,如果为"/test",那么必须得访问“IP:端口/test”才能访问到,我建议采用第一种方法。不然访问每个工程都得有个虚拟路径,看上去不舒服。可能你会想到如果我有多个工程怎么办?是不是一定得取几个虚拟路径,如果你用一个IP的话那是肯定的。但是如果你把机器多设置几个IP,那么就行了,每个工程占用一个IP,这样层次结构更加清晰。
    debug建议设置为0,reloadable设置为true。
    我的习惯是将path设置为path=""因为这样可以在tomcat启动时就可以加载首页项

    2,如果在测试中出现404的错误,如果前面配置没有错,可能就是在%TOMCAT_HOME%/conf/web.xml文件中把虚拟路径显示目录给禁止啦,此时可以在web.xml文件中找到
    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    将listings的value改为true,然后重新启动tomcat,在输入url,测试成功!


    3,如果项目开发完成,准备部署在服务器上时,记住要把第三步中web.xml文件中参数listings的值改为false,这样可以避免把项目的部署路径呈现给使用者!
    具体如下:
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>

    4、访问多台机器文件问题:

    文件太多的时候必然需要跨目录或跨盘,这个时候就需要用到虚拟目录,但是Tomcat 不能直接跨Context 进行Forward。
    例如:
    用 Context 配置映射了虚拟目录 data1, 目录下有文件 123.txt
    如果要在 / 下直接 forward 到 "/data1/123.txt" 是不行的,会提示 404 找不到文件。

    那么就需要灵活应用Tomcat 虚拟目录映射:
    在 D:/Tomcat/conf/Catalina/test 目录下(test为Server.xml配置文件中的域名) 增加 一个 xml 文件,(test要创建),创建之后加上这个样一个XML文件(这里就取名为data1.xml):
    <Context docBase="//IP/data1" reloadable="false" crossContext="true" />
    并且修改 Server.xml 中的 Context 允许 crossContext="true"。
    那么就可以在工程中访问另外台机器上的文件(当然这个台机器需要共享访问的文件)。例如:
    <img src="/data1/001/002/003.png">,来显示图片。

    问题又来了,就是权限问题,共享的文件不想给任何人访问的话,就需要设置共享权限,那么就需要配置tomcat的权限:
    1、在共享的机器上设置tomcat帐户和密码,并加入共享权限。
    2、然后在放tomcat的服务器上,设置相同的tomcat帐户和密码。
    3、在tomcat服务上配置登录账号和密码。

  • 相关阅读:
    Django 使用 内置 content-type
    Python中类的约束
    《激荡十年》六、改革开放的上半场落幕—2012
    《激荡十年》五、中国经济又要完?—2011
    《激荡十年》四、历史性超越下的恐惧与焦虑—2010
    《激荡十年》三、全球哀鸿遍野,中国风景独好—2009
    《激荡十年》二、浩劫不断的2008
    《激荡十年》一、波澜壮阔又混沌失控的十年
    《腾讯传》六、“红衣大炮”轰杀“狗日的腾讯”—3Q大战
    《腾讯传》五、荡清环宇,横扫外来者; 千夫所指,腾讯“三宗罪”
  • 原文地址:https://www.cnblogs.com/mophy/p/6284324.html
Copyright © 2011-2022 走看看