你按这几个步骤去做,就能解决问题:
1.把/tomcat/webapps/目录清空,删掉该文件夹的所有内容,
2.修改/tomcat/conf/web.xml文件:
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
true
1
3.修改/tomcat/conf/server.xml文件:
其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到你的工程了,你上传的图片就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里,不管你怎样重启项目,或者清理缓存,上传的文件依然存在!
部署web项目,别在eclipse中点来点去的部署,那样虽然快捷,但实际上是复制项目到tomcat,有很多弊端!
修改tomcat的配置文件正好解决这个问题,反过来想一想,javaweb项目的服务器一般都是linux系统,linux系统中不可能安装eclipse,
所以在linux系统中部署项目,就是修改配置文件,然后运行命令启动tomcat,这样部署后,request.getSession().getServletContext().getRealPath("/");得到的是项目的WebRoot根目录,比如:D:\project\myProject\prjName\WebRoot,上传文件时的文件夹自然就会创建在项目中,如果你在eclipse中点来点去的部署,得到的却是tomcat的webapps根目录,文件夹就会创建在tomcat中,D:\project\myProject\prjName\WebRoot 这个路径是项目的web根目录,prjName是项目名称, 那么D:\project\myProject\prjName\src 就是你存放java文件的根目录了,/ser 就是项目应用的名称了,或者说是上下文路径,这个名称可以随意修改
如果你的tomcat端口是 8080, 那么项目的访问路径就是 http://localhost:8080/ser
上传时就会在D:\project\myProject\prjName\WebRoot\ 目录中创建文件夹,不管你怎样重启项目,或者清理缓存,上传的文件依然存在, 因为上传的文件都已经存在于你的项目中,这样方式只需要部署一次,没有重新部署的说法
如果你是在eclipse中点来点去的部署项目,也就等于是把D:\project\myProject\prjName\WebRoot目录的所有文件和文件夹都复制到了 /tomcat/webapps/prjName/目录下,那么项目的访问路径就是 http://localhost:8080/prjName
上传时就会在 /tomcat/webapps/prjName/ 目录中创建文件夹,只要重新部署或清理缓存,上传的文件都烟消云散了,因为重新部署时,先删除 /tomcat/webapps/prjName/ 目录,再复制一遍D:\project\myProject\prjName\WebRoot目录的所有文件和文件夹。
引于:http://blog.sina.com.cn/s/blog_5446eca40101ijpw.html