2019独角兽企业重金招聘Python工程师标准>>>

运行环境:Tomcat6.0,eclipseMars

实现方法

(建议)方法1.%TOMCAT_HOME%/conf/server.xml文件中

<host> </host>之间加入如下代码:

<Context path="/inspect/uploadMedia" docBase="E:\project\inspect\uploadMedia" reloadable="true" crossContext="true"/>

最终 <host>的内容为:

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

<Context docBase="inspect" path="/inspect" reloadable="true" source="org.eclipse.jst.jee.server:inspect"/>

<Context path="/inspect/uploadMedia" docBase="E:\project\inspect\uploadMedia" reloadable="true" crossContext="true"/>

</Host>

方法2.不重启Tomcat就使虚拟目录生效

%TOMCAT_HOME%\conf\Catalina\localhost 新建JspTest.xml文件,

如%TOMCAT_HOME%\conf\Catalina\localhost\JspTest.xml

内容为:

<?xml version="1.0" encoding="UTF-8"?>

<Context docBase="E:\project\inspect\uploadMedia"  reloadable="true"  crossContext="true"/>

这种方法可以理解就是新建一个项目,识别xml的文件名为项目路径。

方法2中path是不需要的,设不设都认为是xml的文件名是其项目路径。

所以有2个缺点:①不能与项目名保持一致,如果你的项目是“域名/项目名“访问的情况,这种方式在页面指向虚拟目录资源时,不能使用项目根路径。②如果直接“域名”访问项目。这种方法的路径就是要加上xml作为虚拟路径。

其他尝试:

项目同名xml文件中只能有一个<Context> 不能像sever.xml中<HOST>配多个<Context>。

不能删除或修改原来指向项目的<Context>的docBase,这里修改了原项目就不能访问了。

属性说明:  

%TOMCAT_HOME%:指tomcat的要根目录

docBase  是实际路径,一般为绝对磁盘路径,也可以写相对路径,相对路径是相对于tomcat安装目录的webapps目录,通常设置虚拟目录的目的是将tomcat的安装和项目的保存分开,所以这里建议使用磁盘绝对路径,并且这个磁盘路径不是在tomcat目录下。

workDir  是tomcat运行是对JSP文件做编译后的文件,这个文件最好也是分开。可以不设置

path  为虚拟路径,访问时的路径,注意:一定要加“/”。值得注意的是:path可以为"/"那么访问“IP:端口”就可以访问到布置的工程,如果为"/test",那么必须得访问“IP:端口/test”才能访问到。如果上面的项目path有内容,新加的虚拟路径就要在前面加上“/inspect”如"/inspect/uploadMedia",否则表示要通过http://localhost:8080/mediainfos访问到虚拟路径(即没有项目名。)

debug  建议设置为0,开发时也设置0,反正是用来放上传文件的,没什么感觉。

reloadable开发时设置true,实际部署时设置false。如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用

crossContext="true":虚拟路径要访问到别的电脑时如 docBase="//IP/data1" ,要配置成true,访问本地其他盘不影响。简而言之,允许跨域访问。

几个问题:

1. eclipseMARS每次重新部署或重启tomcat的时候会覆盖server.xml、 web.xml 和 \conf\Catalina\localhost\inspect.xml的问题,

是因为eclipseMARS中有这几个文件的配置文件,直接修改项目名为server/tomcatx.x下面相应的文件,部署的时候就直接覆盖tomcat目录下的原文件。

2. <host> </host>之间在修改之前就存在下面这一个context,是eclipse发布的时候添加的。这个删除项目就起不来。

<Context docBase="inspect" path="/inspect" reloadable="true" source="org.eclipse.jst.jee.server:inspect"/>

3. 虚拟目录默认不支持非英文路径(那些直接说不支持中文的人根本就没研究),原始的webapp目录下可以支持。如果想让虚拟路径也支持可以在server.xml中<Connector>(protocol="HTTP/1.1"的那个)添加URIEncoding="utf-8"(编码视具体项目而定)属性。

<Service>

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>

</Service>

网上一些错误的信息:

1.%TOMCAT_HOME%/conf/web.xml文件中把虚拟路径显示目录给禁止啦,此时可以在web.xml文件中找到把listings 改为true。

其实不用改就能使用虚拟目录,建议为false。这个参数是控制能不能访问虚拟路径下的目录,为true时,即地址栏输入http://localhost:8080/inspect/uploadMedia/可以显示uploadMedia下的文件夹和文件,

<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>

上面的修改是全局修改。若在某一个应用中开启listing时,在WEB-INF/web.xml中:

<servlet>

<servlet-name>media</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>media</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

转载于:https://my.oschina.net/u/2438634/blog/504613

Tomcat 映射虚拟目录相关推荐

  1. Tomcat映射虚拟目录的三种方式(2021版)

    前言:首先要弄明白什么是TOMCAT的虚拟目录:当WEB应用开发完毕后,如果想要对外发布就需要部署到服务器上面,服务器的主要功能就是需要监听端口.接收和解析访问请求并转发给相应的WEB应用进行处理.比 ...

  2. Tomcat映射虚拟路径到指定磁盘(eclipse)

    用WangEditor富文本编辑,上传图片的时候,本文主要记录一下Tomcat映射虚拟路径到指定磁盘,保存到指定路径中,且能实现页面预览. 在实现之前wangeditor的简单实用请参照博主小道仙的后 ...

  3. tomcat配置虚拟目录 / tomcat配置虚拟主机

    tomcat配置虚拟目录 虚拟目录的作用:可以发布指定目录下的项目 (之前讲解过--如果我们想要去发布一个web项目,那么这个项目必须放在tomcat的webapps目录下:放到webapps目录下之 ...

  4. Tomcat的虚拟目录映射常用的几种方式

    可以直接将项目丢到tomcat的webapps目录下,当tomcat重启时就可以访问到项目了 如果你直接想通过 http://localhost:8080/welcome.html 直接访问该页面,可 ...

  5. 笔记之tomcat映射虚拟路径

    动态WEB资源: 用户看到的数据,是可变的. 常用动态WEB开发技术: Jsp/servlet  asp  php等 常见服务器: Weblogid(BEA),WebShere(IBM),tomcat ...

  6. Tomcat设置虚拟目录的方法, 不修改server.xm

    在tomcat文件夹的 conf\catalina\localhost增加project .xml文件 文件内容: <Context path="/project" relo ...

  7. 使用Tomcat Catalina进行Tomcat服务器虚拟目录设置

    最近使用Tomcat 的时候需要进行虚拟目录设置,上网查了一下说是使用Tomcat Catalina进行虚拟目录设置比较好,这样不用修改Tomcat其他相关配置,感觉这个方法很好,于是在下面试了一下, ...

  8. 配置Tomcat的虚拟目录,通过www.XXX.com的方式访问项目

    一般来说,我们访问一个web项目,常用http://localhost:8080/项目名/XX.jsp的这种方式,比较麻烦.如果我们打算采用www.XXX.com的方式访问我们的项目,该肿么办呢? 找 ...

  9. IDEA - Tomcat 配置虚拟目录用来存放图片和访问图片

    目的 配置tomcat虚拟目录用来存放图片和图片的访问; 操作步骤 1.点击工具栏的运行配置Edit Configurations Edit Configurations 2.在弹出的Run/debu ...

最新文章

  1. DIV+CSS中标签ul ol li dl dt dd用法
  2. 键盘连击测试_测试梗欢迎补充
  3. 速学c++(3)-函数
  4. 操作系统 实验3【动态分区存储管理】
  5. c++运算符和结合性
  6. 在ASP.NET Core 2.0中使用CookieAuthentication
  7. 密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书
  8. 找出无序数组最小的K个数(基于快排,效率高)
  9. python selenium iframe怎么定位_python+selenium 切换iframe
  10. windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
  11. 无刷舵机、普通舵机等舵机的区别
  12. Java调用IE浏览器
  13. 凌晨 计算机博士,凌晨三点,被我的博士老婆喊起来写程序……
  14. a到z的ascii码值是多少_c语言 ASCLL码中 A~Z和a~z是多少
  15. 从互联网+角度看云计算的现状与未来(2)
  16. PG的timestamp
  17. 农村将迎来重大爆发!传统农业链条正在重塑,关键一步已经迈出
  18. cfa的pv怎么用计算机算,cfa计算器算pv使用步骤
  19. 【JavaScript】按钮绑定点击事件-onCliek事件
  20. webim 实现实时通讯的 4 种方式

热门文章

  1. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
  2. 【rabbitmq】Queueingconsumer被废止后老代码如何做的解决方案
  3. nginx 反向代理时丢失端口的解决方案(转)
  4. 在Java 8中,有没有一种简洁的方法可以迭代带有索引的流?
  5. 在不推动提交的情况下触发Travis-CI重建?
  6. 如何为iPhone 5屏幕分辨率开发或迁移应用程序?
  7. 光盘装系统和U盘装系统有什么区别吗?
  8. win11虚拟机如何安装 Windows11虚拟机安装步骤教程
  9. poi,HSSFWorkbook,Excel导出,代码示例
  10. MTK旧平台与RDA8851开机详解