深入理解Tomcat虚拟目录

2023-05-16

    我们知道,Web网站中的内容(包括网页,图片,音频文件等)一般都存放在App的目录下。但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站的子目录。我们通常的做法是在网站主目录下新建子目录,并把相关的内容放置到对应的目录。此外,还有另外一种方法,就是创建虚拟目录。虚拟目录可以是磁盘上有权限操作的任意路径(将虚拟路径设置为readOnly是绝对不行的),也可以是网络中其他计算机的目录。
    
    相对而言,创建子目录的方式更安全高效。但为什么还要有虚拟目录呢?这是因为虚拟目录解决了Web文件必须放在Web根目录下的难题。一方面,这样大大增加Web工程的存储空间。另一方面,也为多个不同的工程共享同一份文件提供了保障。比如,当我们多个网站都需要访问同一份文件时,我们只需将该虚拟路径指向改文件的地址即可,这样就避免了同一份文件多次拷贝的问题。
    在Tomcat7版本下,配置虚拟路径修改以下两个文件:
    1.server.xml
    打开Tomcat目录下的/conf/server.xml文件,在Host之前加入下面红色部分的内容。
<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 &quot;%r&quot; %s %b" />
   
  <Context path="/appName/filePath" docBase="/opt/filePath" reloadable="true" debug="0"/>
</Host>
    path : 工程名称+文件路径,当访问path目录下的文件时,实则访问docBase目录下的文件。
    docBase : 文件的真实路径。注意这里如果有文件长传,则将上传的文件路径设置为docBase,而不是path。
2. web.xml
    打开Tomcat目录下的/conf/web.xml,将下面红色部分listings的属性设置为True。
<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> true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    不可否认,虚拟目录的使用为我们的开发和部署带来了极大的便利,但是由于配置虚拟目录必须要将listings属性设置为True,这样就将该目录下的所有文件都暴露给了用户,这样也给系统的使用带来了一定的风险。所以,选择使用虚拟目录一定要慎重。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解Tomcat虚拟目录 的相关文章

随机推荐

  • 正则在小偷程序中的应用(续)

    获取资源信息 content 61 file get contents 34 http list sososteel com qg list html pg 61 1 amp h 61 34 time 对抓取的信息进行处理 取class为l
  • mysql密码过期问题解决方案

    mysql密码过期问题解决方案 问题再现 xff1a 密码过期 旧电脑许久没有用 xff0c 今天打开发现数据库连接不上了 提示密码过期 xff0c 请修改密码 ERROR 1862 HY000 Your password has expi
  • 安装MITIE的条件

    1 版本 在安装rasa xff08 1 1 8 xff0c 其它版本应该也行 xff09 时候必须安装mitie xff0c 下面是我安装mitie时的环境 xff1a 1 VS2017 装没装忘记了 xff0c 但是电脑中有Micros
  • Linux重启命令 / 查看、重启、禁用网卡命令 / 修改IP / 操作防火墙命令

    重启命令 1 reboot 2 shutdown r now 立刻重启 root用户使用 3 shutdown r 10 过10分钟自动重启 root用户使用 4 shutdown r 20 35 在时间为20 35时候重启 root用户使
  • Centos下rpm离线下载与安装命令

    xff08 1 xff09 安装yum即相关插件 sudo apt get install yum sudo apt get install yum utils sudo yum install yum plugin downloadonl
  • Windows下搭建Vxworks开发环境,VMware虚拟机实现

    这是本人自己整理的笔记 xff0c 参考了两篇文章 xff0c 大同小异 参考的第一篇 xff1a http hi baidu com hezhe1008 blog item 26e5cd53364eb314377abe01 html 参考
  • 使用opencv下的sift进行特征匹配(python)

    1 安装opencv 首先确保安装了opencv包和vs2015 xff0c 命令为 xff1a pip install opencv python 也可以直接下载安装文件 xff0c 测试代码 import cv2 import nump
  • CentOS7.0上用命令安装Chrome浏览器。

    1 配置yum下载源 xff1a 在目录 etc yum repos d 下新建文件 google chrome repo 并且在该文件中添加如下内容 xff1a 1 google chrome 2 name 61 google chrom
  • centos7安装anaconda

    步骤一 xff1a 删除centos7中自带有python2 7 xff08 可选 xff09 xff08 1 xff09 强制删除已安装python及其关联 rpm qa grep python xargs rpm ev allmatch
  • new释放内存理解c++

    释放内存后 xff0c 本身抄指针的内容是不会改变的即指针指向没有变 xff0c 但是它里面保存的地址所对应的内存在系统里标记为未使用的即指向的内存区域已经被系统收回了 xff0c 这块内存随时可能会被分配给其他进程或进程里面的变量使用 x
  • archlinux BIOS+BMR 安装记录

    声明 xff01 xff01 本安装指南采用的是传统的BIOS 43 BMR分区方案 43 GRUB引导 适用于早期的电脑 现在大多电脑基本都是UEFI 43 GPT xff0c 这种方案 安装前准备 制作启动盘 1 xff0c 下载arc
  • MAC Please reinstall Android Studio form screatch

    遇到问题的流程 xff0c 是误操作关闭了Kotlin插件 xff0c 重启的时候提示这个信息 解决办法 xff1a 资源库 Preferences AndroidStudio4 0 下面找到disabled plugins txt文件 删
  • 关于zookeeper启动一闪而过的情况

    问题描述 笔者在虚拟机启动zk cmd无论怎么启动都是闪退的情况 解决方案 在cmd文件加个pause查看问题 如下图所示 64 echo off REM Licensed to the Apache Software Foundation
  • jupyter notebook error: FileNotFoundError: [WinError 2]

    文章目录 问题现象解决方法 问题现象 Traceback most recent call last File 34 D Anaconda3 envs robot env lib site packages tornado web py 3
  • Hp 4200添加为网络打印机的步骤

    物理连接 1 只要连接电源 网线即可 设置打印机IP 1 在打印机控制面板上按下 键 xff0c 进入菜单 xff1b 2 按下 或 找到 CONFIGURE DEVICE xff08 配置设备 xff09 选项 xff0c 按下 键 xf
  • Qt内置浏览器引擎WebEngine调试和分析方法

    问题背景 H5和JS代码写好了 xff0c 在浏览器里调试也一切OK xff0c 然后嵌入到Qt中 xff0c 发现各种问题 xff0c 这时候 xff0c 如何在Qt框架下调试Web的代码呢 xff1f 调试方法 在Qt帮助文档中 xff
  • IOS开发之——网络-视频播放-JSON解析(11)

    一 概述 解析JSON结果到OC类通过视频播放地址构成视频播放器并播放显示网络请求 xff0c 返回视频播放列表 xff0c 点击列表中的一项进行播放 二 Main storyboard 三 解析JSON结果到OC类 3 1 JSON数据
  • 华为交换机 ssh和Telnet远程登录配置命令

    华为交换机 ssh和Telnet远程登录配置命令 联系方式 QQ481715271 简单拓扑 LSW4 vlan 20配置地址的原因是SSH Telnet 都可以登录 LSW3 配置 vlan batch 10 20 interface V
  • CentOS7配置yum本地源时报错Repository ‘centos7-media‘: Error parsing config

    错误如下 xff1a 已加载插件 xff1a fastestmirror Repository 39 centos7 media 39 Error parsing config Error parsing 34 gpgkey 61 39 f
  • 深入理解Tomcat虚拟目录

    我们知道 xff0c Web网站中的内容 xff08 包括网页 xff0c 图片 xff0c 音频文件等 xff09 一般都存放在App的目录下 但随着网站内容的不断丰富 xff0c 用户需要把不同层次的内容组织成网站的子目录 我们通常的做