Servlet读取资源文件的三种方式
2015-09-20 17:11
363 查看
读取资源文件的三种方式:
利用ServletContext.getRealPath():
特点:读取应用中任何文件。只能在Web环境下用。*可以读取任何路径下的propertist文件
利用ResourceBundle读取配置文件
特点:可以用在非web环境下。*但是只能读取类路径中的properties文件
利用类加载器读取配置文件(专业)
特点:可以用在非web环境下。*可以读取类路径下的任何文件。
举一个例子:
通过网址运行url-pattern类走这个类。
利用ServletContext.getRealPath():
特点:读取应用中任何文件。只能在Web环境下用。*可以读取任何路径下的propertist文件
利用ResourceBundle读取配置文件
特点:可以用在非web环境下。*但是只能读取类路径中的properties文件
利用类加载器读取配置文件(专业)
特点:可以用在非web环境下。*可以读取类路径下的任何文件。
举一个例子:
package com.dp.java.servlet; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Properties; import java.util.ResourceBundle; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 其他读取资源文件的方式 * */ public class ServletDom7 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("--------利用ServletContext读取配置文件----------"); //利用servletcontext来读取a1.properties test1(); //利用servletcontext来读取a2.properties test2(); //利用servletcontext来读取a3.properties test3(); System.out.println("--------利用ResourceBundle读取配置文件----------"); // test4(); // test5(); System.out.println("--------利用类加载器读取配置文件----------"); test6(); test7(); } private void test1() throws IOException, FileNotFoundException { ServletContext sc=getServletContext(); String path=sc.getRealPath("/WEB-INF/a1.properties"); Properties props=new Properties();//读取文件类型创建对象。 props.load(new FileInputStream(path)); String value=props.getProperty("name1"); System.out.println(value);//结果:a1 } private void test2() throws IOException, FileNotFoundException { ServletContext sc=getServletContext(); String path=sc.getRealPath("/WEB-INF/classes/a2.properties"); Properties props=new Properties();//读取文件类型创建对象。 props.load(new FileInputStream(path)); String value=props.getProperty("name2"); System.out.println(value);//结果:a2 } private void test3() throws IOException, FileNotFoundException { ServletContext sc=getServletContext(); String path=sc.getRealPath("/WEB-INF/classes/com/dp/java/file/a3.properties"); Properties props=new Properties();//读取文件类型创建对象。 props.load(new FileInputStream(path)); String value=props.getProperty("name3"); System.out.println(value);//结果:a3 } /** * 利用ResourceBundle读取配置文件a2.properties */ private void test4()throws IOException, FileNotFoundException { // TODO Auto-generated method stub ResourceBundle rb=ResourceBundle.getBundle("a2");//基名 String value=rb.getString("name1");//keys名字 System.out.println(value); } private void test5()throws IOException, FileNotFoundException { // TODO Auto-generated method stub ResourceBundle rb=ResourceBundle.getBundle("com.dp.java.file.a3");//基名 String value=rb.getString("name2");//keys名字 System.out.println(value); } /** * 利用类加载器来读取配置文件a2.properties */ private void test6()throws IOException, FileNotFoundException { // TODO Auto-generated method stub ClassLoader c1=ServletDom7.class.getClassLoader();//得到ServletDom7类加载器 InputStream in=c1.getResourceAsStream("a2.properties"); Properties prp=new Properties(); prp.load(in); String value=prp.getProperty("name2"); System.out.println(value); } private void test7()throws IOException, FileNotFoundException { // TODO Auto-generated method stub ClassLoader c1=ServletDom7.class.getClassLoader();//得到ServletDom7类加载器 InputStream in=c1.getResourceAsStream("/com/dp/java/file/a3.properties"); Properties prp=new Properties(); prp.load(in); String value=prp.getProperty("name3"); System.out.println(value); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
通过网址运行url-pattern类走这个类。
相关文章推荐
- 实现顶部轮播,下部listview经典布局的两种方式
- 主分片平衡--Shard Overallocation--es横向扩展设计
- Crisis of HDU(母函数)
- 表驱动法
- 2015 ACM-ICPC 沈阳网络赛总结
- sublime安装与配置
- iOS开发笔记--UISlider的相关属性设置
- docker学习笔记(一)
- Move Zeroes——Leetcode
- tail -f log.txt命令的小技巧------观察日志log.txt的动态变化
- C++虚继承的概念
- PrintWriter输出中文乱码问题
- Java和CDT环境配置
- iOS9适配总结
- CMake与Make
- 横向扩展单元--the unit of scale--es横向扩展设计
- Struts2详细说明
- linux 定时备份
- C基础06天--字符串
- 使用ToggleButton