Servlet学习笔记1 : Servlet入门简介

一、Servlet简介

  1.1、Servlet是sun公司提供的一门用于开发动态web资源的技术,Servlet属于动态资源。

    1.2、Servlet(Server Applet)是Java Servlet的简称,Servlet就是一个运行在服务器端的Java类。

    1.3、Servlet就是Java的一个接口,但是通常我们把实现了Servlet接口的java类,都称之为Servlet。

    1.4、Servlet的作用是接收来自浏览器或其他http客户端的请求,进行相应处理,然后做出响应返回给浏览器。

 

二、Servlet的jar包

   servlet api jar包是 servlet-api.jar,在tomcat的lib目录下面就可以找到。它由四个java包组成。

                           

   

     2.1、javax.servlet : 这个包主要包含了servlet 和servlet容器之间关联的接口和类。比如Servlet,ServletConfig, ServletContext,ServletRequest,

           ServletResponse等接口,和Servlet接口的实现类GenericServlet。

  2.2、javax.servlet.http : 这个包主要包含了与Http Servlet相关的Serlvet与Servelt容器之间关联的接口和类。比如继承了GenericServlet这个抽象类的

              HttpServlet类,和HttpServletRequest,HttpServletResponse,HttpSession,Cookie等接口。

    2.3、javax.servlet.annotation:这个包主要包含标注servlet,Filter,,Listener的标注。它还为被标注元件定义元数据。

    2.4、javax.servlet.descriptor: 这个包包含提供程序化登录Web应用程序的配置信息的类型。

 

三、Servlet的运行流程和生命周期

 3.1、运行流程

         第一步: web浏览器向web服务器发出http请求。

         第二步: 如果是第一次请求,web容器会实例化一个目标servlet,然后调用servlet的init()方法进行初始化,之后的请求都会直接使用这个实例,进行第三步。

         第三步:web容器会创建一个用于封装http请求信息的HttpServletrequest对象和一个用于响应web浏览器的HttpServletResponse对象,然后将这个两个

             对象作为参数传入servlet的service()方法。

         第四步:servlet的service()方法通过读取参数HttpServletrequest对象,从而获取到请求信息,然后执行响应操作。把执行结果封装到参数

        HttpServletResponse对象中,返回给web容器。

         第五步:web容器通过HttpServletResponse对象获取到响应信息组织成http响应返回给web浏览器。

 

   3.2、生命周期

           servlet的生命周期一般分为 初始化,处理请求,销毁三个阶段

            初始化:web容器加载servlet的时候会调用init()进行初始化,该方法会接收一个ServletConfig对象参数,从始至终只执行一次。

            处理请求:通过调用servlet的service()方法来处理不同方法(get,put,post,head,delete等 )的http请求,它是Servlet的核心方法。

       销毁:在 Servlet 生命周期结束时调用servlet的destroy()方法销毁servelt。它也只被调用一次。在调用 该 方法之后,servlet 对象会被标记为垃圾回收

 

四、创建一个Servlet

 

import javax.servlet.*;
import java.io.IOException;

public class HelloServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.print("这是初始化方法,创建servlet初始化时执行,生命周期只执行一次");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.print("这是处理请求的方法,可以多次调用");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.print("这是销毁方法,servlet生命周期结束时执行,只被调用一次,之后servlet 对象会被标记为垃圾回收");
    }
}

 

posted @ 2020-03-17 21:37  Harrison_Blog  阅读(139)  评论(0)    收藏  举报