Ali*_*ens 5 eclipse jsp tomcat relative-path absolute-path
我在Eclipse(JSP)中创建一个Web应用程序,并使用Tomcat作为服务器(集成到Eclipse中).我必须在下面创建对象并指定配置文件的路径.这条绝对的道路很有效:
Store store = StoreFactory.create("file:///C:/Users/Aliens/workspace/myProject/WebContent/config/sdb.ttl");
Run Code Online (Sandbox Code Playgroud)
但是我想知道为什么我不能使用相对路径.它应该是"config/sdb.ttl"正确的(如果项目的名称是根)?但它无法以这种方式找到它(NotFoundException).
相对磁盘文件系统路径是相对于当前工作目录的,这取决于您启动应用程序的方式(在Eclipse中它将是项目文件夹,在命令控制台中它将是当前打开的文件夹,在Tomcat管理器/服务中它将是的Tomacat/bin文件夹,等等).你无法从Java代码中控制它,所以不要管它.
在JSP/Servlet中,您可以使用ServletContext#getRealPath()将相对Web内容路径(它在公共webcontent中的根目录,在您的情况下为/WebContent文件夹)转换为绝对磁盘文件系统路径.所以:
String relativeWebPath = "/config/sdb.ttl";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
Store store = StoreFactory.create(absoluteDiskPath);
// ...
Run Code Online (Sandbox Code Playgroud)
该ServletContext是由继承的Servlet可用getServletContext()的方法.
| 归档时间: |
|
| 查看次数: |
7661 次 |
| 最近记录: |