今天解决了一个虚拟目录的问题:
是这样的。
我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个。
然后开始些日图片,就是上传图片,能成功。
但是,重启项目,或者清理缓存之后,图片和文件夹就会自动被删除,不见了。
现在想起一种虚拟目录的方法,有懂的吗?就是修改tomcat的server.xml,求详细讲解。
<Host>之间
<Context path="/img" docBase="D:/images" />
我知道了 如果你是用MyEclips 开发的话 因为上传的是在webapp下面 而源文件下没有那个文件 重启后重新部署 就把本地没有的文件在远端删除 所以 重启后就没了
重新redeploy的时候 tomcat 会同步你本地的文件 因为你本地没有相应的文件夹 自然导致文件丢失。
这只是在开发过程中会遇到的问题 实际应用中 tomcat 只会 startup.bat/sh shutdown.bat/sh
楼主只需在本地建立相应的目录即可
你按这几个步骤去做,就能解决问题:
1.把/tomcat/webapps/目录清空,删掉该文件夹的所有内容,
2.修改/tomcat/conf/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>true</param-value></init-param>
<load-on-startup>1</load-on-startup>
</servlet>
3.修改/tomcat/conf/server.xml文件:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<!----><Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context>
<!--<Context path="/mvc" docBase="D:\project\myProject\area\WebRoot"></Context>-->
</Host>
其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到你的工程了,
你上传的图片就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里,
不管你怎样重启项目,或者清理缓存,上传的文件依然存在!
行不行,你试试便知道了,
部署web项目,别在eclipse中点来点去的部署,那样虽然快捷,但实际上是复制项目到tomcat,有很多弊端!
修改tomcat的配置文件正好解决这个问题,
你反过来想一想,javaweb项目的服务器一般都是linux系统,linux系统中不可能安装eclipse,
所以在linux系统中部署项目,就是修改配置文件,然后运行命令启动tomcat,
这样部署后,request.getSession().getServletContext().getRealPath("/");得到的是项目的WebRoot根目录,比如:D:\project\myProject\editor\WebRoot,上传文件时的文件夹自然就会创建在项目中,
如果你在eclipse中点来点去的部署,得到的却是tomcat的webapps根目录,文件夹就会创建在tomcat中,
我只能这样解释了,希望你能明白!
3.修改/tomcat/conf/server.xml文件:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<!----><Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context>
<!--<Context path="/mvc" docBase="D:\project\myProject\area\WebRoot"></Context>-->
</Host>
其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到你的工程了,
你上传的图片就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里,
不管你怎样重启项目,或者清理缓存,上传的文件依然存在!
行不行,你试试便知道了,
部署web项目,别在eclipse中点来点去的部署,那样虽然快捷,但实际上是复制项目到tomcat,有很多弊端!
修改tomcat的配置文件正好解决这个问题,
你反过来想一想,javaweb项目的服务器一般都是linux系统,linux系统中不可能安装eclipse,
所以在linux系统中部署项目,就是修改配置文件,然后运行命令启动tomcat,
这样部署后,request.getSession().getServletContext().getRealPath("/");得到的是项目的WebRoot根目录,比如:D:\project\myProject\editor\WebRoot,上传文件时的文件夹自然就会创建在项目中,
如果你在eclipse中点来点去的部署,得到的却是tomcat的webapps根目录,文件夹就会创建在tomcat中,
我只能这样解释了,希望你能明白!
D:\project\myProject\editor\WebRoot 这个路径是项目的web根目录,editor是项目名称, 那么D:\project\myProject\editor\src 就是你存放java文件的根目录了
/ser 就是项目应用的名称了,或者说是上下文路径,这个名称可以随意修改
如果你的tomcat端口是 8080, 那么项目的访问路径就是 http://localhost:8080/ser
上传时就会在D:\project\myProject\editor\WebRoot\ 目录中创建文件夹
不管你怎样重启项目,或者清理缓存,上传的文件依然存在, 因为上传的文件都已经存在于你的项目中
这样方式只需要部署一次,没有重新部署的说法
如果你是在eclipse中点来点去的部署项目,也就等于是把D:\project\myProject\editor\WebRoot目录的所有文件和文件夹都复制到了 /tomcat/webapps/editor/目录下,那么项目的访问路径就是 http://localhost:8080/editor
上传时就会在 /tomcat/webapps/editor/ 目录中创建文件夹
只要重新部署或清理缓存,上传的文件都烟消云散了
因为重新部署时,先删除 /tomcat/webapps/editor/ 目录,再复制一遍D:\project\myProject\editor\WebRoot目录的所有文件和文件夹
这回我真的已经讲的很详细了
相关推荐
apache服务器 虚拟目录和虚拟主机设置详解
资源名称:Apache服务器虚拟主机虚拟目录配置 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
成功配置PHP开发环境xampp虚拟目录可行方案,已经正式使用到项目当中
虚拟目录及servlet测试.txt
管家婆软件V3和A8版本创建虚拟目录数据库工具
学习php的好帮手,快捷配置apache虚拟目录和HOSTS文件,自己配置一次apache虚拟目录和hosts文件就再也不需要配置了
服务器架构 IIS 配置管理 虚拟目录创建WEB站点!视频演示!
介绍Asp配置虚拟目录设置
C# IIS 设置 C#代码操作IIS之虚拟目录 C# IIS 设置 C#代码操作IIS之虚拟目录
IIS管理类,可以实现创建站点、虚拟目录,删除虚拟目录等
IIS7.0站点虚拟目录中访问共享,实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上)
虚拟目录是什么作用--如何配置IIS设置虚拟目录
让你轻松创建你的虚拟目录,这里提供一个编译好的可执行文件供大家下载,如果需要源码的话,请联系我:qq357236161
让用户分别使用apple和cloud虚拟目录访问Web服务目录:D:\MyBook\zhang和C:\wang的Web服务目录。 步骤一:在C盘下建立C:\wang 在D盘下建立D:\MyBook\zhang 步骤二:在文件夹conf下找到server.xml文本文档,然后在...
详细讲解apache安装 php和apache整合 虚拟目录 虚拟主机
iis中虚拟目录的作用:很多时候,上传的文件多了,架设服务器当初设定的主目录所在盘空间往往就不够了,怎么办?这就需要设置虚拟目录。
apache怎么配置虚拟目录
tomcate和jetty虚拟目录配置方法,里面带配置文件例子
详细介绍apache配置虚拟目录
介绍设置jsp虚拟目录时需要注意怎么写,简单的两行提醒,省去了记忆