zoukankan      html  css  js  c++  java
  • 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对象。

    路慢慢其休远羲,吾将上下而求所
  • 相关阅读:
    POJ-1189 钉子和小球(动态规划)
    POJ-1191-棋盘分割(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
  • 原文地址:https://www.cnblogs.com/garinzhang/p/2509222.html
Copyright © 2011-2022 走看看