ServletConfig对象
ServletConfig:封装了Servlet配置信息,并且可以获取ServletContext对象。
- 配置Servlet的初始化参数:
<!-- 配置Servlet初始化参数 ,且节点必须在load-on-startup前面-->
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
- 获取初始化参数:
1) 获取Servlet的配置名称(了解):getServletName()
2) getInitParameter(String name):获取指定参数名的初始化参数
3) getInitParameterNames():获取参数名组成的Enumeration对象:
Enumeration<String> names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("^^"+ name+ ":" + value);
ServletContext对象
Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext被包含在ServletConfig对象中,调用ServletConfig.getServletConfig方法可以返回ServletContext对象的引用。由于一个WEB应用程序中所有Servlet都共享一个ServletContext对象,所以ServletContext对象被称之为application对象(Web应用程序对象)。
1) 可以由ServletConfig获取
ServletContext servletContext = servletConfig.getServletContext();
2) 该对象代表当前WEB应用:可以认为ServletContext是当前WEB应用的大管家,可以获取当前WEB应用的各个方面的信息。
- 配置当前WEB应用的初始化参数(web.xml)
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
- 获取当前WEB应用的初始化参数方法:
ServletContext servletContext = servletConfig.getServletContext();
String driver = servletContext.getInitParameter("driver");
System.out.println("driver: " + driver);
Enumeration<String> names2 = servletContext.getInitParameterNames();
while(names2.hasMoreElements()){
String name = names2.nextElement();
String value = servletContext.getInitParameter(name);
System.out.println("-->" + name + ":" + value);
}
- 获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径
getRealPath(String path)
String realPath = servletContext.getRealPath("/hello.jsp");
- 获取当前WEB应用的名称
getContextPath()
String contextPath = servletContext.getContextPath();
- 获取当前WEB应用的某一个文件对应的输入流
getResourceAsStream(String path): path 的 / 为相对于当前WEB应用的根目录
InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");