Jsp 能使用HttpServletRequest对象getRealPath("/") 方法,或者getServletContext().getRealPath("/"); 屡试不爽,可是这次却不行! 看了servlet的实现后,问题逐步得到解决。
做上传或文件读取的时候,常常被取一些文件的相对路径或者绝对路径所搞昏迷了,在本地调试完全没问题,运行很良好,可发布到测试环境就出现了差池,只取得了相对路径。
发布都是打包成*.war文件的,在tomcat下,一般应用程序是不打包的,所以可以实现用上面方法取绝对路径,可是在weblogic下是打包成*.war,就无法实现保存文件在特定的服务器目录了。
解决方案如下:
一、存储到数据库中,访问用一个servlet实现。比较难受点。
二、如果你用的是weblogic 7以上,并且自己可以控制服务器,那么你可以不用打包成war,直接以普通目录形式发布就可以了。
三、自己写个读取项目根目录的方法,这样无论怎么部署,有了项目的根目录,我就能轻而易举的定位到我的资源了。
对于自己的特殊要求,我当然选择方案三了。问题解决!
以下是源代码:
public static String homePath(Object obj, String className) {
java.net.URL url = obj.getClass().getResource(className);
String absolutePath = url.getPath();//获取全路径信息
String urlRoot = "";//路径临时处理缓存
int pos = absolutePath.indexOf("WEB-INF");//判断根目录
if (pos != -1)
urlRoot = absolutePath.substring(0, pos);
else
urlRoot = absolutePath.substring(0, 3);//无相关文件去盘符下
if (urlRoot.substring(urlRoot.length() - 1, urlRoot.length()).equals(
System.getProperty("file.separator"))
|| urlRoot.substring(urlRoot.length() - 1, urlRoot.length())
.equals("/")) {
urlRoot = urlRoot.substring(0, urlRoot.length() - 1);//除去最后的分隔符
}
return urlRoot.substring(1, urlRoot.length());// 除去路径最开头的' /'
分享到:
相关推荐
【浅析J2EE应用服务器的JAVA类装载器】 Java类装载器机制是Java语言灵活性的关键组成部分,尤其在J2EE应用服务器中扮演着重要角色。理解这一机制有助于开发者更好地部署和管理应用程序,解决可能出现的部署问题。 ...
【压缩包子文件的文件名称列表】:“bbs”可能是项目的根目录名,这通常包含项目的所有源文件、配置文件、资源文件等。在J2EE项目中,我们可能期望看到以下结构: 1. `src`目录:存放Java源代码,可能有`java`子...
- **静态资源**:如HTML、CSS、JavaScript文件,直接放在Web应用的根目录下。 ### web.xml配置 - **init-param**:只对当前Servlet有效,用于传递Servlet初始化参数。 - **context-param**:所有Servlet和JSP都可以...
使用 IDE(如 Eclipse)新建一个 Web 项目,例如名为 `flexDemo`,并设置 Web 根目录为 `WebRoot/web`。 3. **集成 BlazeDS**: 解压缩下载的 BlazeDS 包,找到 `blazeds.war` 文件,将其重命名为 `.rar` 并解压...
4. 设置 Cookie 对象,域设置为“/”(即根目录,不能是/appA),保存各登陆用户的 sessionID。 使用 Cookie 对象,我们可以保存各登陆用户的 sessionID。这将允许我们在不同项目之间共享 Session 对象集合。 5. ...
1. **获取J2EE服务器**:常见的J2EE服务器有Tomcat、GlassFish、WildFly等。根据项目需求选择合适的服务器,下载相应版本的安装包。 2. **安装J2EE服务器**:解压下载的服务器压缩包到指定目录,通常不需要专门的...
- 转发路径的参照点是Web项目的根目录,而非服务器的根目录。 #### 八、总结 在J2EE开发中,路径的正确使用对于实现页面之间的跳转、资源的访问等操作至关重要。无论是JSP还是Servlet,开发者都需要理解不同类型的...
3. 配置环境变量,包括`CATALINA_HOME`指向Tomcat的根目录。 4. 设置系统路径,将`%CATALINA_HOME%\bin`添加到PATH环境变量中。 5. 启动Tomcat,通过执行`startup.sh`(Unix/Linux)或`startup.bat`(Windows)脚本...
在"Web Root Directory"中选择“browser”,并将"WebContent"设为Web根目录。根据项目需求,决定是否勾选"Add J2EE Libralies to Buildpath"。 6. 集成LCDS服务:LCDS(LiveCycle Data Services)是Adobe提供的一个...
配置包括服务端项目在Tomcat中的路径、项目的根URL、上下文根目录以及Flex客户端编译后的输出路径。 当项目添加Flex类型后,可能会遇到缺少`html-template`文件夹的问题,通过MyEclipse的“重新创建HTML模板”功能...
在Tomcat这样的Servlet容器中,访问JSP页面的URL需要包含应用的上下文路径(helloapp)以及相对于应用根目录的文件路径。 2. 第二题涉及Servlet类的位置。正确答案是(D)helloapp/WEB-INF/classes/org/javathinker...
12. ****: 当用户访问目录而不是具体文件时,服务器将使用欢迎文件列表中的文件作为默认响应。 13. ****: 配置错误页面,当特定的HTTP状态码或异常发生时,服务器将重定向到指定的页面。 14. ****: 用于指定TLD...
- **J2EE服务器**:如BEA WebLogic, WebSphere Application Server, JBoss等。 - **内置Servlet容器的Web服务器**:如Apache Tomcat。 - **使用插件的产品**:如Apache Web Server、Microsoft IIS等,需要安装...
- 这样,当用户访问根目录时,服务器将尝试依次加载上述文件之一作为首页。 以上内容涵盖了Application与Config对象的基础概念、使用方法及其在J2EE项目中的应用实践。通过合理使用这两个对象,开发者可以更好地...
12. ****:定义当用户访问目录而不是具体文件时,服务器应该默认返回哪个文件。 13. ****:配置错误处理页面,指定当特定HTTP状态码出现或异常发生时,服务器应显示的页面。 14. ****:定义TLD文件的别名,方便在...
19. 文件和目录操作:Java的`File`类提供了列举目录、判断存在、读写文件的方法。效率方面,流的缓冲和关闭都很重要。 20. `&`和`&&`:`&`是按位与运算符,`&&`是逻辑与运算符,后者具有短路特性,只有当左侧表达式...
如果你选择下载集成的插件包,解压缩后将整个文件夹复制到Eclipse的安装目录下,并在Eclipse的根目录创建一个名为"links"的文件夹。然后在"links"文件夹内创建一个与Lomboz文件夹同名的文本文件,文件内容指向Lomboz...
这个文件名"rssdemo"可能代表了整个项目的根目录,包含了所有必要的源代码、配置文件、资源文件等。在导入项目后,开发者或用户可以查看其内部结构,找到相关的JSP文件、Java类、配置文件等,了解RSS订阅的处理逻辑...
2. 指定Web根目录(`Content Folder`),例如`web`,以及BlazeDS的WAR文件(通常需要单独下载),这用于支持Flex与Java之间的远程方法调用。 3. 配置`Output folder`为SWF文件的生成位置,推荐将其放在`web/flex`下,...