问题描述
如下图所示:项目结构问题如下:我再src下面有一个非web环境的类,那么我要在该类中如何获取到upload文件夹下的所有文件呢
解决方案
解决方案二:
给个文件系统全路径
解决方案三:
用ThreadLocal
解决方案四:
通过后台代码获取项目的跟目录之后就就可以拼接出整个目录了。java代码publicstaticfinalStringdbXmlFileName="/WEB-INF/upload/xxx.xxx";request.getContextPath()
解决方案五:
搞错了,补充下publicstaticfinalStringdbXmlFileName="/upload/xxx.xxx";request.getContextPath()+dbXmlFileName
解决方案六:
引用4楼lw7514714的回复:
搞错了,补充下publicstaticfinalStringdbXmlFileName="/upload/xxx.xxx";request.getContextPath()+dbXmlFileName
不是,我的这个类不是action也不是servlet,所以不能使用web容器提供的对象,这个request不能用
解决方案七:
引用2楼wanghualeilei的回复:
用ThreadLocal
具体怎么使用呢
解决方案八:
引用1楼xiaopeipei2004的回复:
给个文件系统全路径
不行的,当这个项目被部署到linux服务器上的时候,路径就变了
解决方案九:
引用6楼XUECHANG1的回复:
Quote: 引用2楼wanghualeilei的回复:
用ThreadLocal具体怎么使用呢
在web环境下从前台提交请求走到servlet走到service走到dao最后返回service返回到servlet返回页面这是一次完整的web请求,为了处理这个请求tomcat需要从线程池里分配一个线程来处理这个流程所以这个流程里的所有调用的类不管是servlet还是service或者普通java类都共享这个线程存储的变量所以可以把想要共享的任何变量放到线程里.这个过程具体就是通过ThreadLocal来完成的具体怎么用百度一下就好了,不要忘流程结束之后要把变量从线程里清除