tomcat生成文件位置问题

时间:2021-01-27 10:54:53
我用struts2写了一个小的web程序,服务器是tomcat 6.0.18,在程序中通过上传的内容生成一个相对路径的文件,但那个文件直接在tomcat的bin文件夹里生成了,我怎么办才能让那个文件生成在我的web目录下面。请不要说用绝对路径这样的话,谢谢。

10 个解决方案

#1


application.getRealPath("/"); 这个就是你的项目的根目录。

tomcat默认的当前目录是 tomcat/bin

#2


可不可以用, Servlet.getSerletContextPath() 可能不太对, 

#3


application.getRealPath("/"); 我试了,是获得我项目的绝对地址
Servlet.getSerletContextPath();是获得的什么呀,还有Servlet怎么在struts2里怎么获取。

#4


request.getContextPath()

struts2 Action中获取request, response对象的方法  

ActionContext ctx = ActionContext.getContext();        
       
  HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);        
       
  HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);  

http://lxy19791111.javaeye.com/blog/135771

#5


servlet里经常会用到一些GET方法,容易弄混,把它们记在这儿了。

servletContext.getContextPath()=
servletContext.getRealPath("/")=F:\ess-branch\web\
servletContext.getRealPath("")=F:\ess-branch\web
servletContext.getContextPath()=
servletContext.getServerInfo()=Apache Tomcat/6.0.18


http://hi.baidu.com/atomicface/blog/item/de62ac10c099c8cea6ef3f5b.html

#6


用servletContext.getRealPath(path)或request.getServletContext().getRealPath(path);
不要用request.getRealPath(path),这个方法在api中是不推荐的,部分服务器不支持此方法(如某些版本的weblogic)

#7


上面说的应该可以解决楼主的问题了!

#8


我试了试上面给的方法,那就是说只能取得绝对路径才可以了

#9


引用 8 楼 linjky 的回复:
我试了试上面给的方法,那就是说只能取得绝对路径才可以了


这样应该可以满足要求, 

因为是通过程序获取绝对路径的,不是硬编码上去的...

#10


谢谢大家帮我解决问题

#1


application.getRealPath("/"); 这个就是你的项目的根目录。

tomcat默认的当前目录是 tomcat/bin

#2


可不可以用, Servlet.getSerletContextPath() 可能不太对, 

#3


application.getRealPath("/"); 我试了,是获得我项目的绝对地址
Servlet.getSerletContextPath();是获得的什么呀,还有Servlet怎么在struts2里怎么获取。

#4


request.getContextPath()

struts2 Action中获取request, response对象的方法  

ActionContext ctx = ActionContext.getContext();        
       
  HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);        
       
  HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);  

http://lxy19791111.javaeye.com/blog/135771

#5


servlet里经常会用到一些GET方法,容易弄混,把它们记在这儿了。

servletContext.getContextPath()=
servletContext.getRealPath("/")=F:\ess-branch\web\
servletContext.getRealPath("")=F:\ess-branch\web
servletContext.getContextPath()=
servletContext.getServerInfo()=Apache Tomcat/6.0.18


http://hi.baidu.com/atomicface/blog/item/de62ac10c099c8cea6ef3f5b.html

#6


用servletContext.getRealPath(path)或request.getServletContext().getRealPath(path);
不要用request.getRealPath(path),这个方法在api中是不推荐的,部分服务器不支持此方法(如某些版本的weblogic)

#7


上面说的应该可以解决楼主的问题了!

#8


我试了试上面给的方法,那就是说只能取得绝对路径才可以了

#9


引用 8 楼 linjky 的回复:
我试了试上面给的方法,那就是说只能取得绝对路径才可以了


这样应该可以满足要求, 

因为是通过程序获取绝对路径的,不是硬编码上去的...

#10


谢谢大家帮我解决问题