---------------------取Servlet上下文路径,取WebContent的路径 --------------------------------
1、String path = request.getRealPath("/cfg.xml") (已不建议使用)
2、String path = request.getSession().getServletContext().getRealPath("/cfg.xml");
---------------------读取类路径中的文件 --------------------------------
一、getResource方法
//获取类的根路径classes/(重要)
URL s2 = Test.class.getResource("/");
String path2=s2.getPath();//如果路径有空格会使用 %20替代
//获取Test.class类文件所在的路径(重要)
URL s3 = Test.class.getResource("");
String path3=s3.getPath(); //如果路径有空格会使用 %20替代
// %20 转换为 空格(方案二)
String path4=s2.toURI().getPath(); //s2是URL s2
System.out.println(path4);
// %20 转换为 空格(方案二)
String path="file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/server-node.properties";
path = java.net.URLDecoder.decode(path, "UTF-8");
System.out.println(path);
二、getResourceAsStream方法
//在classes目录找文件a.txt
InputStream is = Test.class.getResourceAsStream( "/a.txt");
//在ReadCard类所在目录找文件a.txt
InputStream is = Test.class.getResourceAsStream( "a.txt");
----------------------取类路径测试代码 -------------------------------
package com.hc360.config.util; import java.io.InputStream; import java.net.URISyntaxException; import java.net.URL; // Test.class类文件实际路径是:E:/workspace3.6/configure huido/web/WEB-INF/classes/com/hc360/config/util/Test.class // 配置文件的实际路径是E:\workspace3.6\configure huido\web\WEB-INF\classes\server-node.properties // 注意configure huido中间有一个空格 // 下面开始测试,读取类路径中的文件 public class Test { public static void main(String[] args) throws Exception { //--------------取path----------------------- // 获取类的根路径classes/(重要) // 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/ // 参数也可以是:"/com/a.txt",在/com/目录下找文件a.txt URL s2 = Test.class.getResource("/"); System.out.println(s2); // 获取Test.class类文件所在的路径(重要) // 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/com/hc360/config/util/ URL s3 = Test.class.getResource(""); System.out.println(s3); // 从来都是null // 结果:null URL s4 = Test.class.getClassLoader().getResource("/"); System.out.println(s4); // 获取类的根路径classes/ // 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/ URL s5 = Test.class.getClassLoader().getResource(""); System.out.println(s5); // 获取类的根路径classes/ // 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/ URL s6 = Thread.currentThread().getContextClassLoader().getResource(""); System.out.println(s6); //--------------取流InputStream----------------------- // 从类的根路径classes/下读取配置文件(重要) // 参数也可以是:"/com/a.txt",在/com/目录下找文件a.txt InputStream is = Test.class.getResourceAsStream("/server-node.properties"); System.out.println("InputStream is:" + (is == null ? "null" : "not null")); // 在Test类所在目录找文件(重要) // 要在classes/com/hc360/config/util/下有server-node.properties文件,就可以读出来 // 获取Test.class类文件所在的路径,读取配置文件(实际没有配置文件,所以返回null) InputStream is7 = Test.class.getResourceAsStream("server-node.properties"); System.out.println("InputStream is:" + (is7 == null ? "null" : "not null")); // 从来都是null InputStream is2 = Test.class.getClassLoader().getResourceAsStream("/server-node.properties"); System.out.println("InputStream is:" + (is2 == null ? "null" : "not null")); // 从类的根路径classes/下读取配置文件 InputStream is3 = Test.class.getClassLoader().getResourceAsStream("server-node.properties"); System.out.println("InputStream is:" + (is3 == null ? "null" : "not null")); //-------------------%20 转换为 空格-------------------- // %20 转换为 空格 // 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/ String path5=s2.toURI().toString(); System.out.println(path5); String path="file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/server-node.properties"; path = java.net.URLDecoder.decode(path, "UTF-8"); System.out.println(path); } }
相关推荐
1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................
6.5 servlet上下文 226 6.5.1 servletcontext接口 226 6.5.2 页面访问量统计实例 228 6.6 请求转发 231 6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 ...
6.5 servlet上下文 226 6.5.1 servletcontext接口 226 6.5.2 页面访问量统计实例 228 6.6 请求转发 231 6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 ...
Servlet3.1规范(最终版) JavaTM Servlet 规范 版本 3.1(最终版) Shing Wai Chan Rajiv Mordani [作者] 穆茂强 张开涛 [译者] 2012年6月翻译 2013年7月修订 目录 前言 ............................... 3 ...
将 Jar 放入应用程序的 /WEB-INF/lib 目录后,在应用程序上下文启动期间,您可以在应用服务器日志中找到: #################################### ## Classloader Servlet Is Enabled ## ## NOT RECOMMENDED FOR ...
6.5 servlet上下文 226 6.5.1 servletcontext接口 226 6.5.2 页面访问量统计实例 228 6.6 请求转发 231 6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 ...
6.5 servlet上下文 226 6.5.1 servletcontext接口 226 6.5.2 页面访问量统计实例 228 6.6 请求转发 231 6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 ...
packages属性必须配置,里面是微信控制器包路径列表,WeixinDispatcherServlet在启动阶段会扫描包路径及其下面的子包路径,如果类拥有@Weixin注解,则该类会被当作微信控制器类加载到微信上下文。 除了packages属性...
不需要servlet容器,因为它使用了模拟的servlet上下文和模拟的wicket应用程序。 在下面,可以测试渲染的页面和包含的组件。 这通常是通过选择组件路径为字符串的组件来完成的。 正如您所能想象的那样,这是重构页面...
此API创建的组件: @ Route,RouteLayout,HasErrorParameter组件@Id注入聚合物模板的组件字段默认情况下,实例化程序按类型(组件类)查找CDI bean,并从BeanManager获取上下文引用。 所有CDI功能都可以使用,例如...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
在本系列教程中 Web 工程的上下文路径都是 struts2 ,如果在 Web 根目录有一个 index.jsp 文件,则访问路径如下: http://localhost:8080/struts2/index.jsp 由于 MyEclipse6 目前并不支持 Struts2 ,所以我们需要到...
28.4.2.Servlet上下文初始化 扫描Servlet,过滤器和侦听器 28.4.3.ServletWebServerApplicationContext 28.4.4.自定义嵌入式Servlet容器 程序化定制 直接自定义...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
整理上下文路径 删除注释以支持程序化 - 测试之前和之后的内存使用 为什么实时服务器上的 404 不是 404? 之后 排序和截断视图对象中的标签? 视图对象中每个线程的页面数? Bean 验证? 删除单个标签? 单独的...
5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
☆ Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域...
自定义管理服务器的上下文路径 iii. 41.3. 自定义管理服务器的端口 iv. 41.4. 自定义管理服务器的地址 v. 41.5. 禁用HTTP端点 vi. 41.6. HTTP Health端点访问限制 iv. 42. 基于JMX的监控和管理 i. 42.1. 自定义...
3.1.5 上下文菜单(Context Menu) 55 3.1.6 状态栏(Status Bar) 55 3.1.7 编辑器(Editor) 55 3.2 常见概念和操作 56 3.2.1 项目(Project) 56 3.2.2工作区(Workspace) 56 3.2.3 导入、导出Java项目 56 3.2.3.1 ...