Servlet(二)

工作流程和生命周期

  • 通过请求头得知浏览器访问的是哪个主机 (request headers //host )
  • 通过请求头知道访问的是哪一个web项目,资源
  • 通过获取到的资源路径在配置中匹配到真实的路径
  • 服务器会创建对应的Servlet对象,(第一次访问会创建,Servlet实例,第二次调用init方法进行初始化)
  • 调用Service(request,response 接受,响应)
  • 调用service完毕后返回服务器,由服务器将response缓冲区数据取出,以http响应的格式发送给浏览器。

Servlet的生命周期

  • Servlet没有main()方法,不能独立运行,运行完全由Servlet引擎控制调度,此处生命周期研究的是Servlet容器何时创建servlet实例,调用其方法进行请求的处理,何时销毁其实例的整个过程。
  • 实例和初始化时机 当请求到达容器时,容器查找Servlet对象是否存在,若不存在,则会创建实例并进行初始化。
  • 就绪、调用、服务阶段 当有请求到达容器时,容器调用service方法,可以被多次调用;service方法中,会依据请求方式不同调用doGet、doPost方法,(可以重写这俩方法,但一般重写service直接。)
  • 销毁时机 关闭服务器,执行一次
    package Servlet_demo;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    
    /**
     * Servlet的生命周期
     * 1.初始化 init  只会执行一次,第一次访问servlet触发第一次调用service方法会调用
     * 2.就绪、调用、 service   执行多次,当有请求访问servlet时,就会调用
     * 3.销毁  destroy   服务器自动调用,执行一次,服务器关闭或异常时触发
     *
     */
    @WebServlet("/ser03")
    public class Servlet03 extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("Service");
        }
    
        @Override
        public void init() throws ServletException {
            System.out.println("初始化方法");
        }
    
        @Override
        public void destroy() {
            System.out.println("销毁方法");
        }
    }
    
    

总结

  • 1 客户端向Servlet容器发送http请求
  • 2 Servlet容器接受客户端的请求
  • 3 容器创建一个HttpServletRequest对象,将客户端请求封装到这个对象中
  • 4 容器创建一个HttpServletResponse对象
  • 5 容器调用Servlet对象service方法,把Request与Response作为参数,传给HttpServlet
  • 6 HttpServlet调用HttpServletRequest对象有关方法,获取http请求信息。
  • 7 调用HttpResponse对象有关的方法,生成响应的数据
  • 8 容器把响应的结果传给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值