servletContext的作用: 获取全局的初始化参数(在项目里面的所有的servlet里面都可以得到参数)
ServletContext servletContext = servletConfig.getServletContext();
String username = servletContext.getInitParameter("username");
ServletContext servletContext = servletConfig.getServletContext();
// 获取所有的全局初始化参数的名称
Enumeration initParameterNames = servletContext.getInitParameterNames();
while (initParameterNames.hasMoreElements()) {
// 获取初始化参数名称
String name = (String) initParameterNames.nextElement();
// 获取对应的值
String values = servletContext.getInitParameter(name);
}
第二个用途:servletContext对象也称为域对象,在一定的范围内,可以存值和取值
在启动tomcat服务器的时候,在服务器里面可能有多个项目,服务器会为每个项目创建一个servletContext对象,servletContext对象可以存值和取值
通过servlet1向servletContext里面设置一个值,在这个项目里面的所有的servlet里面都可以得到servlet1设置的那个值。
* 存值 setAttribute(String name, Object object)
第一个参数:名称
第二个参数:具体的值
* 取值 getAttribute(String name)
第一个参数:名称
servletContext对象的第三个用途读取web项目中的文件
读取ser目录下的文件
public class HttpServerletDemo extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = getServletContext();
/*
* 在getResourceAsStream(String path)里面path写法固定 首先第一个位置 写 /: 理解为代表项目的名称;
* 在/后面写文件在tomcat里面的具体的路径
*/
InputStream in = servletContext.getResourceAsStream("/WEB-INF/classes/db.properties");
int len =0;
while ((len = in.read())!=-1) {
System.out.print((char)len);
}
}
将项目布到tomcat上 并运行
读取包下面的文件
public class HttpServerletDemo extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = getServletContext();
/*
* 在getResourceAsStream(String path)里面path写法固定 首先第一个位置 写 /: 理解为代表项目的名称;
* 在/后面写文件在tomcat里面的具体的路径
*/
InputStream in = servletContext.getResourceAsStream("/WEB-INF/classes/com/android/longs/db1.properties");
int len =0;
while ((len = in.read())!=-1) {
System.out.print((char)len);
}
}
访问运行
读取webroot下面的文件
public class HttpServerletDemo extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 得到servletContext对象
ServletContext context = getServletContext();
// 使用getRealPath(String path)
// 首先第一个位置 /,后面写文件在tomcat里面的具体的路径
String path = context.getRealPath("/db2.properties");
System.out.println(path);
Properties p = new Properties();
// 得到输入流
InputStream in = new FileInputStream(path);
p.load(in);
String url = p.getProperty("url");
String username = p.getProperty("username");
String password = p.getProperty("password");
System.out.println("url is "+url);
System.out.println("username is "+username);
System.out.println("password is "+password);
}
}
访问运行