1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Javaweb上传图片或文件到服务器 Tomcat服务器重新部署项目 会删除原来上传的文件的问题

Javaweb上传图片或文件到服务器 Tomcat服务器重新部署项目 会删除原来上传的文件的问题

时间:2022-08-25 19:42:50

相关推荐

Javaweb上传图片或文件到服务器 Tomcat服务器重新部署项目 会删除原来上传的文件的问题

解决办法!!!

你按这几个步骤去做,就能解决问题:

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 applicationsDocumentation 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/目录,而是直接到了你的工程里,

不管你怎样重启项目,或者清理缓存,上传的文件依然存在!

再来解释一波!

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目录的所有文件和文件夹

总结

其实就是我们的开发工具eclipse或者myeclipse导的鬼

部署web项目,别在eclipse中点来点去的部署,那样虽然快捷,但实际上是复制项目到tomcat,有很多弊端!

修改tomcat的配置文件正好解决这个问题,

你反过来想一想,javaweb项目的服务器一般都是linux系统,linux系统中不可能安装eclipse,

所以在linux系统中部署项目,就是修改配置文件,然后运行命令启动tomcat,

重新redeploy的时候 tomcat 会同步你本地的文件 因为你本地没有相应的文件夹 自然导致文件丢失。

这只是在开发过程中会遇到的问题 实际应用中 tomcat 只会 startup.bat/sh shutdown.bat/sh

这样部署后,request.getSession().getServletContext().getRealPath(“/”);得到的是项目的WebRoot根目录,比如:D:\project\myProject\editor\WebRoot,上传文件时的文件夹自然就会创建在项目中,

如果你在eclipse中点来点去的部署,得到的却是tomcat的webapps根目录,文件夹就会创建在tomcat中,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。