Servlet简述

        Servlet生命周期

Servlet是一个继承了HttpServlet的类文件
servlet是服务器小应用程序
Servlet API为Servlet提供了统一的编程接口
Servlet一般在容器中运行
常见的Servlet容器Tomcat, Jetty / Resin

Servlet生命全过程:   指Servlet对象在服务器内存中从创建到调用,到销毁的整个过程
    1: ClassLoader ---加载
    2: new     ---实例化:当客户端通过URL请求的时候,web容器根据web.xml配置自动调用该Servlet的构   造方法,实例化对象
    3: init()     ---初始化:通过该servlet对象调用init()方法,读取web.xml中该servlet的配置信息,为service方法提供相关数据
    4: service      ---处理请求通过该对象调用service()方法,如果是继承HttpServlet,则根据请求头信息中的请求方法,调用对应的doGet()/doPost()
    5: destory()       ---退出服务: 不是在service()方法调用完后,立即调用,而是由JVM来决定。当JVM需要销毁一些对象、释放内存空间的时候,才会去调用该实例的destroy()方法

想要运行Servlet,必须还需要配置一个web.xml文件

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//@WebServlet("/ServletLife")             //----如果添加注解姐可以不用web.xml文件
public class ServletLife extends HttpServlet {

  public void init() throws ServletException {    //----初始化变量
    System.out.println("---init--");
  }

  protected void doGet(HttpServletRequest req, HttpServletResponse resp)    //----根据请求信息调用doGet()或者doPost()
      throws ServletException, IOException {
      System.out.println("----doGet()---");
  }

  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
            System.out.println( "---dopost()----" );   
         super.doPost(req, resp);       //----方法的调用
  }

  public void destroy() {          //-----退出服务
     System.out.println("----destroy()----");  
  }
}


WEB.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
        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_3_0.xsd">
    <servlet>
        <!--为了安全的需要,给要访问类文件去一个别名-->
        <servlet-name>HS</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--为了安全的需要,给url路径建一个映射(取别名)-->
        <servlet-name>HS</servlet-name>
        <url-pattern>/abc</url-pattern>
    </servlet-mapping>
</web-app>

你可能感兴趣的:(servlet)