Tomcat 映射虚拟目录
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 映射虚拟目录相关推荐
- Tomcat映射虚拟目录的三种方式(2021版)
前言:首先要弄明白什么是TOMCAT的虚拟目录:当WEB应用开发完毕后,如果想要对外发布就需要部署到服务器上面,服务器的主要功能就是需要监听端口.接收和解析访问请求并转发给相应的WEB应用进行处理.比 ...
- Tomcat映射虚拟路径到指定磁盘(eclipse)
用WangEditor富文本编辑,上传图片的时候,本文主要记录一下Tomcat映射虚拟路径到指定磁盘,保存到指定路径中,且能实现页面预览. 在实现之前wangeditor的简单实用请参照博主小道仙的后 ...
- tomcat配置虚拟目录 / tomcat配置虚拟主机
tomcat配置虚拟目录 虚拟目录的作用:可以发布指定目录下的项目 (之前讲解过--如果我们想要去发布一个web项目,那么这个项目必须放在tomcat的webapps目录下:放到webapps目录下之 ...
- Tomcat的虚拟目录映射常用的几种方式
可以直接将项目丢到tomcat的webapps目录下,当tomcat重启时就可以访问到项目了 如果你直接想通过 http://localhost:8080/welcome.html 直接访问该页面,可 ...
- 笔记之tomcat映射虚拟路径
动态WEB资源: 用户看到的数据,是可变的. 常用动态WEB开发技术: Jsp/servlet asp php等 常见服务器: Weblogid(BEA),WebShere(IBM),tomcat ...
- Tomcat设置虚拟目录的方法, 不修改server.xm
在tomcat文件夹的 conf\catalina\localhost增加project .xml文件 文件内容: <Context path="/project" relo ...
- 使用Tomcat Catalina进行Tomcat服务器虚拟目录设置
最近使用Tomcat 的时候需要进行虚拟目录设置,上网查了一下说是使用Tomcat Catalina进行虚拟目录设置比较好,这样不用修改Tomcat其他相关配置,感觉这个方法很好,于是在下面试了一下, ...
- 配置Tomcat的虚拟目录,通过www.XXX.com的方式访问项目
一般来说,我们访问一个web项目,常用http://localhost:8080/项目名/XX.jsp的这种方式,比较麻烦.如果我们打算采用www.XXX.com的方式访问我们的项目,该肿么办呢? 找 ...
- IDEA - Tomcat 配置虚拟目录用来存放图片和访问图片
目的 配置tomcat虚拟目录用来存放图片和图片的访问; 操作步骤 1.点击工具栏的运行配置Edit Configurations Edit Configurations 2.在弹出的Run/debu ...
最新文章
- DIV+CSS中标签ul ol li dl dt dd用法
- 键盘连击测试_测试梗欢迎补充
- 速学c++(3)-函数
- 操作系统 实验3【动态分区存储管理】
- c++运算符和结合性
- 在ASP.NET Core 2.0中使用CookieAuthentication
- 密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书
- 找出无序数组最小的K个数(基于快排,效率高)
- python selenium iframe怎么定位_python+selenium 切换iframe
- windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
- 无刷舵机、普通舵机等舵机的区别
- Java调用IE浏览器
- 凌晨 计算机博士,凌晨三点,被我的博士老婆喊起来写程序……
- a到z的ascii码值是多少_c语言 ASCLL码中 A~Z和a~z是多少
- 从互联网+角度看云计算的现状与未来(2)
- PG的timestamp
- 农村将迎来重大爆发!传统农业链条正在重塑,关键一步已经迈出
- cfa的pv怎么用计算机算,cfa计算器算pv使用步骤
- 【JavaScript】按钮绑定点击事件-onCliek事件
- webim 实现实时通讯的 4 种方式
热门文章
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
- 【rabbitmq】Queueingconsumer被废止后老代码如何做的解决方案
- nginx 反向代理时丢失端口的解决方案(转)
- 在Java 8中,有没有一种简洁的方法可以迭代带有索引的流?
- 在不推动提交的情况下触发Travis-CI重建?
- 如何为iPhone 5屏幕分辨率开发或迁移应用程序?
- 光盘装系统和U盘装系统有什么区别吗?
- win11虚拟机如何安装 Windows11虚拟机安装步骤教程
- poi,HSSFWorkbook,Excel导出,代码示例
- MTK旧平台与RDA8851开机详解