传统读文件方法
package bull01.ServletContext.readfile;
/**
* 这是传统读文件方法
* 只能在tomcat的bin目录下建个目录(比如建个src,把db.properties放进去)把文件放进去才读的到。
*
*
* 传统方式读取文件:
* * 使用的是相对路径,相对的JVM的路径.
* * 但是现在是一个web项目,相对于JVM的路径的.现在JVM已经交给tomcat管理.
* @throws FileNotFoundException
* @throws IOException
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReadFileDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BufferedReader br = new BufferedReader(new FileReader("src/db.properties"));
Properties prop = new Properties();
prop.load(br);
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println(driverClass);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
使用ServletContext中的getResourceAsStream读取.
package bull01.ServletContext.readfile;
/**
*
* 使用ServletContext中的getResourceAsStream读取.
* @throws FileNotFoundException
* @throws IOException
*/
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
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 ReadFileDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = this.getServletContext();
InputStream is =servletContext.getResourceAsStream("/WEB-INF/classes/db.properties");
Properties prop = new Properties();
prop.load(is);
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println(driverClass);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
获取文件的磁盘绝对路径
package bull01.ServletContext.readfile;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
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 ReadFileDemo3 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = this.getServletContext();
String realPath = servletContext.getRealPath("/WEB-INF/classes/db.properties");
InputStream is = new FileInputStream(realPath);
Properties prop = new Properties();
prop.load(is);
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println(realPath);
System.out.println(driverClass);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
采用类加载器方式读文件
package bull01.ServletContext.readfile;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReadFileDemo4 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ReadFileUtils.readFile();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
package bull01.ServletContext.readfile
import java.io.IOException
import java.io.InputStream
import java.util.Properties
public class ReadFileUtils {
public static void readFile() throws IOException {
//使用类加载器来读取文件
//类的加载器用来加载class文件,将class文件加载到内存中
InputStream is = ReadFileUtils.class.getClassLoader().getResourceAsStream("db.properties")
Properties prop = new Properties()
prop.load(is)
String driverClass = prop.getProperty("driverClass")
String url = prop.getProperty("url")
String username = prop.getProperty("username")
String password = prop.getProperty("password")
System.out.println(driverClass)
System.out.println(url)
System.out.println(username)
System.out.println(password)
}
}
ServletContext读取全局初始化参数
package bull02.ServletContext.initparam;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 读取全局初始化参数
*/
String username = this.getServletContext().getInitParameter("username");
String password = this.getServletContext().getInitParameter("password");
System.out.println(username + "---" + password);
Enumeration<String> en = this.getServletContext().getInitParameterNames();
while(en.hasMoreElements()) {
String name = en.nextElement();
String value = this.getServletContext().getInitParameter(name);
System.out.println(name + "---" +value);
}
/**
* 获得文件的MIME的类型
*/
String type = this.getServletContext().getMimeType("1.jpg");
System.out.println(type);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}