ServletConfig對象
web
能夠經過web.xml文件中的<init-param>標籤來初始化參數,這些參數會在建立servlet實例時將其封裝到ServletConfig對象中,並在調用service中的init方法時將其傳遞給servlet;this
設置參數:spa
<init-param> <param-name>name</param-name> <param-value>lzj</param-value> <init-param>
定義ServletConfig對象,經過init方法將其傳給Servlet以便開發人員對其進行調用;code
private ServletConfig config ;//定義ServletConfig對象,web容器在建立servlet對象時會自動將參數傳入; public void init(ServletConfig config) throws ServletException{ this.config = config }//將其傳給Servlet; ...... String paramVal = this.config.getInitParameter("name");//獲取指定的初始化參數; Enumeration<String>e = config.getInitParameterNames();//獲取全部的初始化參數; while (e.hasMoreElements()){ String name = e.nextElement(); String value = config.getInitParameter(name); response.getWriter().print(name + " = " + value+ "<br/>");//打印輸出初始化參數;
ServletContext對象xml
web容器在啓動時會爲每一個web應用程序都建立一個ServletContext對象,全部的Servlet都共享這個對象,所以能夠經過這個對象來實現Servlet對象之間的通信,能夠經過ServletConfig中的getServletContext的方法來獲取SercletContext對象;對象
//在第一個Servlet中獲取ServletContext對象並儲存數據; ServletContext context = this.getServletConfig.getServletContext(); context.setAttribute("date",date); //在第二Servlet中提取得到data數據; ServletContext context = this.get.ServletContext(); String data = context.getAttribute("data");
除了上面所說的<init-param>能夠設置初始化參數,還可用<context-param>標籤來設置參數,再用ServletContext方法中的getInitParameter()方法來獲取;blog
<context-param> <param-name>name</param-name> <param-value>lzj</param-value> <context-param>//在web.xml設置後初始化參數; ........ ServletContext context = this.getServletContext(); String Paramval = context.getInitParameter("name");//經過getInitParameter方法獲取初始化參數;
除了實現數據通信、初始化參數,ServletContext還能夠用來實現轉發;開發
經過ServletContext對象中的getRequestDispatcher獲得RequestDispatcher對象,再調用forward方法實現轉發;get
ServletContext context = this.getServletContext(); RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5"); rd.forward(request, response);