javawebday20(绝对路径)

来源:互联网 发布:中国软件发展趋势 编辑:程序博客网 时间:2024/06/11 13:29
/* *ServletContext是javaweb四大域对象之一(域对象用来在Servlet中传递数据) *1、域对象必须要有存数据的功能 *2、域对象必须要有取数据的功能 *3、域对象内部其实有一个Map * PageContext * ServletRequest * HttpSession * ServletContext *所有域对象都有存取数据的功能 因为域对象内部有一个Map用来存储数据 下面是ServletContext对象用来操作数据的方法 * void setAttribute(String name,Object value) 用来存储一个对象 也可以称之为存储一个域属性 例如servletContext.setAttribute("XX","XXX"),在ServletContext中保存了一个域属性 域属性名称为XX,域属性的值为XXX *如果多次调用该方法 并且使用相同的name 那么会覆盖上一次的值 这一特性与Map相同 * Object getAttribute(String name)用来获取ServletContext中的数据 当前在获取之前需要先存储才行 例如String value=(String)servletContext.getAttribute("XX")获取名为XX的域属性 * void removeAttribute(String name) 用来移除ServletContext中的域属性 如果参数name指定的域属性不存在 那么本方法什么都不做 * Enumeration getAttributeNames() 获取所有域属性的名称 * *获取应用初始化参数 *Servlet也可以获取初始化参数 但它是局部的参数 一个Servlet只能获取自己的初始化参数 不能获取别人的 即初始化参数只为一个Servlet准备 *可以配置公共的初始化参数 为所有Servlet而用 要使用ServletContext才能使用 *  可以使用    ServletContext来获取在web.xml文件中配置的应用初始化参数 应用初始化参数与Servlet初始化参数不同 *<context-param>    <param-name>con</param-name>    <param-value>abc</param-value> </context-param> *app.getInitParameter("con");通过参数名 获取参数值 * *获取真实路径 *  可以使用ServletContext对象来获取Web应用下的资源 例如在hello应用的根目录下创建a.txt文件 现在想在Servlet中获取这个资源 可以使用ServletContext来获取 *  获取a.txt的真实路径 String realPath=servletContext.getRealPath("/a.txt")realPath的值为a.txt绝对路径为D:\tomcat9\apache-tomcat-9.0.1\webapps\day03_01\a.txt *获取b.txt的真实路径 String realPath=servletContext.getRealPath("WEB-INF/b.txt"); * *获取资源流 *  不只可以获取资源的路径 还可以通过ServletContext获取资源流 即把资源以输入流的方式获取 *获取a.txt资源流 InputStream in = servletContext.getReasourceAsStream("/a.txt"); *获取b.txt资源量 InputStream in = servletContext.getReasourceAsStream("/WEB-INF/b.txt"); * *获取指定目录下所有资源路径 * 可以使用ServletContext获取指定目录下所有资源路径 例如获取/WEB-INF下所有资源的路径 * Set set = context.getReasourcePaths("/WEB-INF"); * System.out.println(set); * 本方法 必须以"/"开头 * */
/**         * 1、获取ServletContext对象         * 2、调用其setAttribute()方法完成保存数据         * 3、调用其getAttribute()方法完成获取数据         */        ServletContext app = request.getServletContext();        app.setAttribute("name", "aa");        String name = (String) app.getAttribute("name");        System.out.println(name);        System.out.println(app.getInitParameter("con"));        /*         *得到有盘符的路径         * D:\tomcat9\apache-tomcat-9.0.1\webapps\day03_01\index.jsp         */        String path = this.getServletContext().getRealPath("/index.jsp");        System.out.println(path);        /*         * 获取资源的路径后再创建出输入流对象         */        InputStream in  = this.getServletContext().getResourceAsStream("/index.jsp");        /*         * 获取当前路径下所有资源的路径         * 深一层文件不会遍历下去         */        Set<String> set = this.getServletContext().getResourcePaths("/WEB-INF");        System.out.println(set);
原创粉丝点击