zoukankan      html  css  js  c++  java
  • servlet学习总结(一)——初识Servlet

    Servlet工作过程

    当客户端向web服务器发送servlet请求时,web服务器首先检查是否已经加载并创建了servlet实例对象。如果没有会装载并创建该Servlet的一个实例对象。然后调用servlet实例对象的init()方法。

    接着会创建一个用于封装Http请求消息的HttpServletRequest对象和一个用于响应消息的HttpServletResponse对象。然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

    当web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

    Servlet接口实现类

    Sun公司定义了两个Servlet接口实现类,GenericServlet和HttpServlet

    HttpServlet能够处理Http请求的Servlet,它增强了Servlet接口功能,我们在开发的时候直接继承HttpServlet。

    HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。

    Servlet生命周期

    Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。
    初始化阶段:
    1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。
    2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。
    3,Servlet容器创建一个servlet对象。
    4,Servlet容器调用servlet对象的init方法进行初始化。
    运行阶段:
    当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

    然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

    信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和

    servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。
    销毁阶段:
    当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,

    同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放

    servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。

    注意:
    在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数

    Servlet访问URL映射配置

    因为客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。
    <servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
    一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

  • 相关阅读:
    测试的对自己的要求要高,你自己对测试质量的要求太低了,测试这里放松一下,问题就会放大几倍!!!!测试是最后的质量防线了
    第二阶段:Linux和Bash脚本课程---第五讲:Bash脚本编写
    第二阶段:Linux和Bash脚本课程---第四讲:Bash编程语法
    第二阶段:Linux和Bash脚本课程---第三讲:Linux三剑客与管道使用
    第二阶段:Linux和Bash脚本课程---第二讲:Linux常用命令 (文件/网络/性能)
    selenium 设置cookie,Proxy代理
    request + beautifulsoup + openpyxl + 使用
    给cc爬取一下百度的榜单
    mac电脑-python虚拟环境的维护
    记录一次现网问题定位-5月12号
  • 原文地址:https://www.cnblogs.com/love-Stefanie/p/6673855.html
Copyright © 2011-2022 走看看