在开发Web方面的应用时, 经常需要获取服务器中当前WebRoot的物理路径
如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时,我们只需要获得ServletContext,然后通过ServletContext.getRealPath("/")来获取当前应用在服务器上的物理地址
如果在类中取不到ServletContext时, 有两种方式可以做到
1) 利用Java的类加载机制 调用 XXX.class.getClassLoader().getResource(""); 方法来获取到ClassPath , 然后处理获得WebRoot目录
这种方式只能是该class在WebRoot/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中,则该方法失效。这时就应该用下面一种方式
2) spring框架的思路, 在WEB-INF/web.xml中, 创建一个webAppRootKey的param, 指定一个值(默认为webapp.root)作为键值, 然后通过Listener , 或者Filter , 或者Servlet 执行String webAppRootKey = getServletContext().getRealPath("/"); 并将webAppRootKey对应的webapp.root 分别作为Key , Value写到System Properties系统属性中。之后在程序中通过System.getProperty("webapp.root")来获得WebRoot的物理路径
根据第二种的思路,我们还可以再扩展一下。不过对于在部署在一台服务器中的应用来说,已经足够了。
分享到:
相关推荐
在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...
- 可以通过Eclipse中的`Properties`->`Deployment Assembly`进行设置,包括`.java`文件路径、Web文件路径、项目依赖的`.jar`包文件路径及其发布路径。 通过上述介绍,我们可以清晰地了解到Java Web项目的代码结构...
在Java Web开发中,通常有多种方法可以获取到所需的路径。 - **通过`ServletContext`获取路径**: - `getRealPath("/")`:获取Web应用程序根目录的物理路径。 - `getRealPath("/relative/path")`:获取Web应用程序...
在Web应用中,通过`request.getContextPath()`可以获得web应用的上下文路径,如"/tree",这里的"tree"指的是web项目的root context。这通常用于构建请求URL或资源路径的基础部分。 ### 2. 解决Java路径问题的方案 ...
1. **使用ServletContext.getRealPath("/")**:这是获取Web应用在服务器上物理路径的常见方式。当需要访问服务器上的文件时,如读取配置文件或上传的文件,可以使用此方法。例如,`context.getRealPath("/WEB-INF/...
在Web应用开发中,经常需要获取Web应用的根目录,即WebRoot的物理路径。对于Servlet、Action、Controller、Filter或Listener等,可以通过`ServletContext.getRealPath("/")`来获取。这种方法直接且有效,但如果在...
在Web应用开发中,特别是使用Servlet、Action、Controller或其他类似组件时,获取服务器中当前WebRoot的物理路径是至关重要的。可以通过`ServletContext`的`getRealPath("/")`方法来获取Web应用在服务器上的根目录。...
在探讨JSP中Java文件操作的全面指南时,我们深入剖析了文件的创建、检查、删除,目录的管理,以及如何处理虚拟目录和获取文件属性等核心知识点。这些操作对于构建动态网页,尤其是那些需要与文件系统交互的应用程序...
- 将文件保存到指定的物理路径上。 - 图片压缩处理:这部分代码尝试对上传的图片进行压缩处理,生成缩略图,但由于代码片段不完整,具体的实现细节无法完全展示。 ### 总结 通过上述分析可以看出,这段JSP代码实现...
在JSP页面中处理虚拟目录通常涉及到获取目录的实际物理路径。这在读取服务器上的文件或设置文件路径时非常重要。 ```java // 获取Web站点主目录的位置 String webRoot = request.getRealPath("/"); // 获取JSP网页...
在本文中,我们将探讨如何在不依赖ODBC数据源或使用绝对路径的情况下,通过Java代码在DAO层连接Web项目中的Access数据库,以确保项目的可移植性。 首先,我们需要明白Access数据库的JDBC连接通常是通过JDBC-ODBC...
- **`docBase`**:指定Web应用的实际物理路径。例如,上面的例子中`E:\MyEclipse9.0\WorkShop\webTest\WebRoot`即为实际的Web应用根目录。 - **`reloadable`**:设置为`true`时,表示允许热部署,即在不重启服务器的...
- 在项目的`WebRoot`目录下新建所需的JSP页面。 - 将`WEB-INF`文件夹及其内容复制到项目中,并确保`web.xml`文件也一并包含。 - 部署`jspSmartUpload`组件到项目名称下的`WEB-INF\classes`目录中。 - **配置说明...
### 如何在Tomcat 7.0服务器中添加Web应用及注意事项 #### 一、引言 Apache Tomcat 是一个免费开源的轻量级Servlet容器,用于开发和部署基于Java的Web应用程序。Tomcat 支持最新的Java EE标准,如Servlet、JSP等。...
在浏览器中输入 http://localhost:8080/工程名字/WebRoot/index.jsp,可以访问到部署的程序。 方式二:通过 Tomcat 的 server.xml 配置文件中部署 在 Tomcat 的 server.xml 配置文件中部署 Tomcat 项目需要进行...
1. **路径问题**:确保在`server.xml`文件中指定的物理路径与实际文件系统中的路径完全一致,包括大小写也要匹配。 2. **权限问题**:检查目标目录的读写权限,确保Tomcat进程有足够的权限访问这些文件。 3. **...
在MyEclipse等IDE中,Web应用程序的最终部署目录通常是项目的`WebRoot`子目录。 如果遇到项目无法自动部署或者找不到的问题,可能是因为`docBase`设置不正确,或者Tomcat的部署策略与预期不符。检查`webapps`目录,...