Servlet-ServletConfig对象
ServletConfig接口的方法
* getInitParameterNames
* getInitParameter
* getServletName
* getServletContext
作用:
封装了Servlet的配置信息,并且可以获取ServletContext对象
1)配置Servlet的初始化参数
<servlet>
<!--servlet注册的名字-->
<servlet-name>HelloServlet</servlet-name>
<!--servlet的全类名-->
<servlet-class>com.demo.javaweb.HelloServlet</servlet-class>
<!--配置servlet的初始化参数 且节点必须在load-on-startup节点的前面-->
<init-param>
<!--参数名-->
<param-name>user</param-name>
<!--参数值-->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>1230</param-value>
</init-param>
<!--可以指定Servlet被创建的时机-->
<load-on-startup>1</load-on-startup>
</servlet>
2)获取初始化参数:
>getInitParameter(String name):获取指定参数名的初始化参数
>getInitParameterNames():获取参数名组成的Enumeration对象
@Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init..."); String user = servletConfig.getInitParameter("user"); System.out.println(user); Enumeration<String> names = servletConfig.getInitParameterNames(); while (names.hasMoreElements()){ String name = names.nextElement(); String value = servletConfig.getInitParameter(name); System.out.println(name + " " + value); } }
3)获取servlet的配置名称
String servletName = servletConfig.getServletName(); System.out.println(servletName);
ServletContext接口:
* Servlet引擎为每个WEB应用程序都创建了一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。
* 由于一个WEB应用程序中所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为application对象(web应用程序对象)。
* 功能:
-获取WEB应用程序的初始化参数
-记录日志
-application域范围的属性
-访问资源文件
-获取虚拟路径所映射的本地路径
-WEB应用程序之间的访问
-ServletContext的其他方法
<!--配置当前WEB应用的初始化参数--> <context-param> <param-name>driver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </context-param> <context-param> <param-name>jdbcUrl</param-name> <param-value>jdbc:mysql://</param-value> </context-param>
1.获取web应用的初始化参数
方法:
getInitParameter
getInitParameterNames
ServletContext servletContext = servletConfig.getServletContext(); String driver = servletContext.getInitParameter("driver"); System.out.println(driver); Enumeration<String> names2 = servletContext.getInitParameterNames(); while (names2.hasMoreElements()){ String name = names2.nextElement(); String value = servletConfig.getInitParameter(name); System.out.println(name + " " + value); }
web应用的初始化参数:可以被所有servlet所获取
servlet初始化参数:只能用于这个Servlet所获取
2.获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径
getRealPath(String path)
String realPath = servletContext.getRealPath("/hello.jsp"); System.out.println(realPath);
3.获取当前WEB应用的名称:
getContextPath()
4.获取当前WEB应用的某一个文件对应的输入流
getResourceAsStream(String path):path的/为当前WEB应用的根目录
ClassLoader classLoader = getClass().getClassLoader(); InputStream is = classLoader.getResourceAsStream("jdbc.properties"); System.out.println(is); InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties"); System.out.println(inputStream);
5.与Attribute相关的方法