在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!

在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!,第1张

传递一个参数进去不就有了,没办法传递那就 ThreadLocalset 然后在另一个地方 ThreadLocalget 再拿回来就是了。

pubblic class A {

private static final ThreadLocal instances = new ThreadLocal();

public static void put (Object target) { instancesset(target);}

public static Object get() {return instancesget();}

}

在请求之后调用 Aput(ServletContext); 在你的普通 java 类中调用 Aget();

ThreadLocal 像它的名字一样,它能保证这个 set 和 get 能对线程进行隔离,get 到的肯定是这个线程在之前 set 进去的东西,不会拿到其它线程的东西,因为 servlet 一个请求由一个线程服务的,我们需要保证请求完成后清理掉现场 set(null) 就可以了。

public void doGet(request, response) {

try {

Aset(requestgetServletContext());

// 其它正常的 *** 作。

} finally {

Aset(null);

}

}

你的普通类 Aget() 得到刚才那个 ServletContext。这个 try / finally 配对是必须的,因为 >

requestgetScheme()得到协议如:>

思路:在JSP页面中使用request内置对象,requestgetServletContext()getContextPath()获取路径。

代码如下:

首先得到ServletContext对象(jsp中的application)

其次得到WEB项目的的真实路径

String add=applicationgetRealPath("/"); super指得是GenericServlet类

最后,可以得到任意一个网站文件的地址:

add+requestgetServletPath();

以上就是关于在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!全部的内容,包括:在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!、web根目录在哪儿、在一个Java WEB项目里然后获取项目工程的路径 不要Tomcat下的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9793963.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存