java_第一年_JavaWeb(3)

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);
相關文章
相關標籤/搜索