1由于一个WEB应用程序中的所有Servlet都共享同一个对应的ServletContext对象,所以ServletContext对象被称为application对象。是当前web应用的大管家,可以获取到web应用的各个信息
package servlet; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import javax.servlet.ServletConfig; 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 HelloServlet extends HttpServlet { /** * Constructor of the object. */ public HelloServlet() { super(); System.out.println("constructor"); } public void init(ServletConfig servletconfig) throws ServletException { // ServletConfig常用方法 String v = servletconfig.getInitParameter("user:"); // String v = this.getInitParameter("user:"); // //也行,因为HttpServlet是ServletConfig的实现类,所以可以用this调用该方法 System.out.println("method1:" + v); System.out.println("init"); // Enumeration<String> en = this.getInitParameterNames(); Enumeration<String> en = servletconfig.getInitParameterNames(); while (en.hasMoreElements()) { String names = en.nextElement(); String values = servletconfig.getInitParameter(names); System.out.println(names + "-->" + values); } System.out.println(""); // ServletContext常用方法 ServletContext sct = servletconfig.getServletContext(); String svalue = sct.getInitParameter("driver"); System.out.println(svalue); // 获取当前文件在web服务器上的绝对路径 String str = sct.getRealPath("/file1.txt"); System.out.println(str); // 获取当前web应用名称 String conp = sct.getContextPath(); System.out.println(conp); try { InputStream is = sct .getResourceAsStream("/WEB-INF/classes/xml.properties"); // 路径是相对当前web应用的路径 System.out.println(is); } catch (Exception ex) { ex.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("dopost"); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here System.out.println("destroy"); } }
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>driver</param-name> <param-value>jdbc.odbc</param-value> </context-param> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.HelloServlet</servlet-class> <!--设置局部初始化参数 --> <init-param> <param-name>user:</param-name> <param-value>wuyj</param-value> </init-param> <init-param> <param-name>password:</param-name> <param-value>123</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet/HelloServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
结果:
constructor
method1:wuyj
init
password:-->123
user:-->wuyj
jdbc.odbc
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\sdf\file1.txt
/sdf
[email protected]
时间: 2024-10-22 23:22:15