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

相关文章
相关标签/搜索