java-- servlet获取资源的几种方式

public class JServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //web-inf下的
            String path1 = getServletContext().getRealPath("/WEB-INF/demo.xml");
        //lib下的
            String path2 = getServletContext().getRealPath("/WEB-INF/lib/demo.xml");
        //src下的
            String path3 = getServletContext().getRealPath("/WEB-INF/classes/demo.xml");
        //cn.itcast.servlet.servlet_context包下的
            String path4 = getServletContext().getRealPath("/WEB-INF/classes/cn/itcast/servlet/servlet_context/demo.xml");

        //其实上面例子中path3 和 path4 这两种方式 有些麻烦
            //在介绍一种获得资源的方式,是对.class ==> Class 和 classLoader的应用
            InputStream is = this.getClass().getResourceAsStream("demo.xml"); // 如果不加"/"==> 相对的是类的当前(包)目录
            InputStream is2 = this.getClass().getResourceAsStream("/demo.xml");//如果加了"/" ==> "/"就代表classes目录(src)
            //在说下classLoader 下也有方法  classLoader 就是类的加载器. ==> 专门来读取class文件的输入流
            //也提供了读取其他文件的方法.(使用classLoader不要读取较大的文件)
            // this.getClass().getClassLoader() ==> 获得类的加载器
            InputStream is3 = this.getClass().getClassLoader().getResourceAsStream("/demo.xml");// 不论加不加"/",都相对于 classes目录,跟class中加"/" 的相对路径是一样的.

            //使用class或classLoader 也可以获得文件的绝对路径
            URL url =    this.getClass().getResource("demo.xml");
            System.out.println(url.getPath());

    }

}
时间: 2024-10-13 11:26:40

java-- servlet获取资源的几种方式的相关文章

java中获取路径的几种方式

总是忘记, 备份一下,方便下次用. 第一种: File directory = new File("");//参数为空 String courseFile = directory.getCanonicalPath() ;System.out.println(courseFile); 结果:C:\Documents and Settings\Administrator\workspace\projectName获取当前类的所在工程路径; 第二种: File f = new File(th

java动态获取WebService的两种方式(复杂参数类型)

java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_FlightOrderSearchRequest request) { Object myAllMessage; OrderSearchListRes response = null; try { String endpoint = carGlobalSetting.getEndpoint(); JaxWsD

Java中获取配置文件的四种方式

一,类加载器classLoader 二,getResourcesAsStream方法 三,Properties对象 四,ResouceBundle对象 五,四种方式代码演示 public class LoadProperties { public static void main(String[] args) throws Exception, IOException { //方式一,在项目同级目录下 /*Properties p = new Properties(); p.load(new F

Java异常关闭资源的两种方式

try-catch-finally 常用,在异常关闭时应判断流是否为空 public class CloseableUtils { public static void closeable(Closeable ... closeIO) { for(Closeable clo:closeIO) { if(clo!=null) { try { clo.close(); } catch (IOException e) { System.out.println(DateUtils.getNowTime(

Java文件上传的几种方式

文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一.通过Servlet类上传 1.编写Sevlet类 package com.chanshuyi.upload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.

跨域请求资源的几种方式

跨域请求资源的几种方式 由于浏览器同源策略,凡是发送请求URL的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域. (1)JSONP(jsonp跨域get请求) 这种方式主要是通过动态创建一个script标签,浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行:(创建script标签向不同域提交http请求的不会被拒绝的方法,jsonp标签的src属性是没有跨域限制的) 实际项目中JSONP通常用来获取json格式数据,这时前后端通常约定一个参数callback,

9.9-全栈Java笔记:遍历集合的N种方式总结&Collections工具类

遍历集合的N种方式总结 [示例1]遍历List方法1,使用普通for循环 for(int i=0;i<list.size();i++){         //list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp); } [示例2]遍历List方法2,使用增强for循环(使用泛型定义类型!) for (String   temp : list) { System.out.println(temp); } [示例

java基础知识回顾之java Thread类学习(三)--java线程实现常见的两种方式实现好处:

总结:实现Runnable接口比继承Thread类更有优势: 1.因为java只能单继承,实现Runnable接口可以避免单继承的局限性 2.继承Thread类,多个线程不能处理或者共享同一个资源,但是实现Runnable接口可以处理同一个资源. 下面我们做个测试:验证下.车站的售票系统售票的例子,车站的各个售票口相当于各个线程,我们先使用第一种方法几继承Thread类的方式实现: 代码如下: package com.lp.ecjtu.Thread; /** * * @author Admini

访问WEB-INF下JSP资源的几种方式(转)

访问WEB-INF下JSP资源的几种方式 方法一: 本来WEB-INF中的jsp就是无法通过地址栏访问的,所以安全. 如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了如下: <servlet> <servlet-name>runtain</servlet-name> <jsp-file>/WEB-INF/INF.jsp</jsp-file> </servlet> <