Servlet/JSP-01 Servlet及其生命週期

一.起步web

1.新建一個類繼承Servlet接口瀏覽器

public class HelloServlet implements Servlet {

    @Override
    public void destroy() {
        System.out.println("Destroy...");
    }

    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig...");
        return null;
    }

    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo...");
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("init...");
    }

    @Override
    public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
        System.out.println("service...");
        resp.getWriter().println("Hello World...");
    }

    public HelloServlet() {
        System.out.println("HelloServlet Constructor...");
    }
}

2.配置web.xmltomcat

  <servlet>
      <servlet-name>helloServlet</servlet-name>
      <servlet-class>com.bwr.start.HelloServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
      <servlet-name>helloServlet</servlet-name>
      <url-pattern>/hello</url-pattern>
  </servlet-mapping>

說明:部署在tomcat(本地)上,默認訪問地址爲http://localhost:8080/project_name/hello, 瀏覽器頁面顯示"hello world..."app

 

二. Servlet容器ide

1.能夠建立Servlet,並調用Servlet的相關生命週期方法url

2.Servlet, JSP, Filter, Listener都在容器內運行spa

 

三. Servlet的生命週期code

1.生命週期相關方法(如下方法都是由servlet容器負責調用)xml

  Servlet構造器:只被調用一次,只有第一次請求Servlet時,建立Servlet實例,調用構造器。對象

      說明Servlet是單例的。

  init():只被調用一次,在建立號實例後當即被調用,用於初始化當前Servlet,此方法會傳入一個ServletConfig參數。

  service():會被屢次調用。每次請求都會調用service方法,用於響應請求。

  destroy():只被調用一次。在當前Servlet所在的WEB應用被卸載前調用,用於釋放當前Servlet佔用的資源。

 

2. load-on-startup配置

  a. 配置在web.xml中servlet標籤中,用於指定Servlet建立的時機.

  b. load-on-startup取值:若爲負數則在第一次請求時被建立;若爲0或整數,則在當前應用被web容器加載時建立實例,值越小,加載的時機越早。

  <servlet>
      <servlet-name>helloServlet</servlet-name>
      <servlet-class>com.bwr.start.HelloServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
  </servlet>

3. Servlet配置細節

  a. 一個Servlet能夠有多個servlet-mapping配置映射

  b. <url-pattern> 配置能夠使用通配符,可是隻容許兩種形式

    <url-pattern>/*</url-pattern>    有"/"不容許加擴展名

    <url-pattern>*.do</url-pattern>    有擴展名不容許加"/"

 

三. Servlet相關的類

1. ServletConfig

  封裝了Servlet得配置信息,而且能夠獲取ServletContext對象。

2. ServletContext

  Servlet引擎爲每一個WEB應用程序都建立一個對應的ServletContext對象,在Servlet中能夠經過ServletConfig的getServletContext()方法獲取。

3. ServletRequest

4. ServletResponse

相關文章
相關標籤/搜索