繁体   English   中英

如何参考正确的目录?

[英]How do I refer to the right Directory?

如果我的Java类位于:

包org.gamehost.flyingame.BookManagementServlet.ModelClass

又名:

BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

在该类中,如果我想从目录中返回文件,请在执行此操作后说一个html文件:

File newFile = new File(“ HTMLFile.html”);

假设上面的代码将创建一个新文件,它将在

图书管理软件Servlet

目录,或者它将在此目录中创建它:

BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

如果没有,我是否应该这样做呢?

C:// Workspace / BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

大概都不行。 除非容器已修改此行为,否则它将转到当前用户目录。 java.io.File javadoc说:

相反,相对路径名必须根据从其他路径名获取的信息来解释。 默认情况下,java.io包中的类始终针对当前用户目录解析相对路径名。 该目录由系统属性user.dir命名,通常是在其中调用Java虚拟机的目录。

容器通常会锁定文件创建,因此您可能会遇到安全错误。 您没有提到您的容器,但这是有关Tomcat 6和安全管理器的一些信息。

如果这些文件是临时文件并已重新生成,则可以在从2.5 servlet规范的SRV.4.7.1临时工作目录中定义的javax.servlet.context.tempdir servlet上下文属性返回的绝对路径中创建它们。

每个Servlet上下文都需要一个临时存储目录。 Servlet容器必须为每个Servlet上下文提供一个专用的临时目录,并通过javax.servlet.context.tempdir上下文属性使其可用。 与该属性关联的对象必须是java.io.File类型。

一个无用的样式注释:我总是发现最好将包名都保留为小写,并使用驼峰式作为类名。 我发现这样做可以减少阅读代码,查看堆栈跟踪等时的混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM