Tomcat 设置虚拟路径映射访问外部资源
程序员文章站
2022-07-10 20:02:54
...
Tomcat 设置虚拟路径映射
最近在项目中遇到一个问题,需要通过Tomcat来访问外部路径下的图片,通过查阅资料,发现可以通过配置虚拟路径映射来解决。
方法1
打开Tomcat安装路径下conf文件夹下的server.xml文件,找到Host标签,在里面追加一个Context标签,如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/" docBase="F:\111" reloadable="true" debug="0" reloadable="true" crossContext="true"/>
</Host>
说明:
- path: 指定访问该 Web 应用的 URL 入口。
- docBase:指定 Web 应用的文件路径。
- reloadable:如果这个属性设为 true,tomcat 服务器在运行状态下会监视在WEB-INF/classes 和 WEB-INF/lib 目录下 class 文件的改动,如果监测到有 class 文件被更新的,服务器会自动重新加载 Web 应用。
- crossContext:如果想在应用内调用 ServletContext.getContext()来返回在该虚拟主机上运行的其他 web application 的 request dispatcher,设为 true。在安全性很重要的环境中设为 false,使得 getContext()总是返回 null。缺省值为 false。
- Debug:与这个 Engine 关联的 Logger 记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为 0。
进行上述修改,重启Tomcat,如果要访问F盘111目下的图片PIC_1.jpg,则在浏览器中输入如下地址:http://localhost:8080/PIC_1.jpg,便可以访问到该图片。
方法2
在Tomcat根目录下的/conf/Catalina/localhost/ 路径下新建一个filename.xml,并在该xml中编写语句
<Context docBase="F:\111\PIC_1.jpg"/>
即可创建虚拟站点,虚拟站点名为filename。docbase指向应用程序目录,各参数与方法1中的标签的参数类似。
如果需要分层虚拟站点,可以将文件名改成a#b#c,访问分层虚拟站点时用localhost:8080/a/b/c
方法3
在Tomcat根目录下的conf目录context.xml文件中插入
<Context path="/" docBase="F:\111" reloadable="true" debug="0" reloadable="true" crossContext="true"/>
这个虚拟路径修改方法会让所有的站点都能加载
方法4
在Tomcat根目录下的路径/conf/Catalina/localhost/context.xml.default ,在这里进行配置,这个虚拟路径修改方法会让该主机下的所有的站点都能加载,同上。