• Servlet学习


    JSP+JavaBeans
    JSP+JavaBeans+Servlet

    Servlet工作原理:
    Servlet由支持Servlet的服务器:Servlet引擎,负责管理运行。当多个客户请求一个servlet时,引擎为每个客户启动一个线程而不是启动一个进程,这些线程由servlet引擎服务器来管理,与传动的CGI为每个客户启动启动一个进程相比较,效率要高的多。
    Servlet生命周期:
    一个servlet是javax.servlet包中HttpServlet类的子类,由支持servlet的服务器完成该子类的对象,即servlet的初始化。
    servlet的生命周期主要有下列三个过程组成:
        1. 初始化servlet。servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个servlet对象,这对象调用init方法完成必要的初始化工作。
        2. 诞生的servlet对象在调用service方法响应客户的请求。
        3. 当服务器关闭时,调用destory方法,消灭servlet对象。
    init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。当后续的客户请求servlet服务时,web服务将启动一个新的线程,在该线程中,servlet调用service方法相应客户的请求,也就是说,每个客户的每次都请求都导致service方法被调用执行。
    init方法:
    该方法是HttpServlet类中的方法,我们可以在servlet中重写这个方法
        public void init(ServletConfig config) throws ServletException
    servlet第一次被请求加载时,服务器初始化一个servlet,即创建一个servlet对象,这个对象调用init方法完成必要的初始化工作。该方法在执行时,servlet引擎会把一个ServletConfig类型的对象传递给init()方法,这个对象就 被保存在servlet对象中,直到servlet对象被消灭,这个ServletConfig对象负责向servlet传递服务设置消息,如果传递失败就会发生ServletException,servlet就不能正常工作。
    同时我们已经知道,当多个客户请求一个servlet时,引擎为每个客户启动一个线程,那么servlet类的成员变量被所有的线程共享。
    service方法:
    该方法是HttpServlet类中的方法,我们可以在servlet中重写这个方法
        public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    当servlet创建成功和初始化之后,servlet就调用service方法来处理用户的请求并返回响应。Servlet引擎将两个参数传递给该方法,一个HttpServletRequest类型的对象,该对象封装了用户的请求信息,此对象调用相应的方法可以获取封装的信息,即使用这个对象可以获取用户的请求。和init方法不同的是,init方法只被调用一次,而service方法可能被多次调用,我们已经知道,当后续的客户请求servlet服务时,Servlet引擎将启动一个新的线程,在该线程中,servlet调用servlet方法相应客户的请求,也就是说,每个客户的每次请求都跟导致service方法将被调用执行,调用过程运行在不同的线程中,互不干扰。
    destory方法:
    该方法是HttpServlet类中的方法,servlet可直接继承这个方法,一般不需要重写
        public destory();
    当servlet引擎终止服务时,比如关闭服务器等,destory()方法会被执行,消灭servlet对象。

    路慢慢其休远羲,吾将上下而求所
  • 相关阅读:
    Java-io流入门到精通详细总结
    Java网络编程总结
    递归--逆波兰表达式
    递归--N皇后问题
    递归--汉诺塔问题 (Hanoi)
    递归--求n!的阶乘结果
    枚举--熄灯问题
    枚举--假币问题
    枚举--生理周期
    枚举--完美立方Python算法实现
  • 原文地址:https://www.cnblogs.com/garinzhang/p/2509222.html
Copyright © 2020-2023  润新知