• 什么是servlet?


    一、servlet是什么?

    是用java编写的应用在服务端的程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和修改数据,生成动态Web内容,例如页面等等。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

    二、工作原理、流程

    1、原理

    Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。

    2、servlet接口

    public interface Servlet {
        void init(ServletConfig var1) throws ServletException;
     
        ServletConfig getServletConfig();
     
        void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
     
        String getServletInfo();
     
        void destroy();
    }

    init():很明显,servlet的初始化,依赖于servletConfig对象。当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用。

    getServletConfig():返回由Servlet容器传给init()方法的ServletConfig对象。

    service():每当请求Servlet时,Servlet容器就会调用这个方法。

    getServletInfo():返回Servlet的一段描述,可以返回一段字符串。

    destroy():卸载应用程序或者关闭Servlet容器时,Servlet容器就会调用这个方法销毁Servlet。

    3、实现类

    Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。

      HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
      HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。

    4、示例

    选择要实现的方法

    注意上面servlet使用了@WebServlet注解,因此就不需要在web.xml中进行配置。

    启动tomcat,效果如下:

    或者去掉@WebServlet注解,配置web.xml

    工作流程:

    • 客户端发送请求至服务器端;
    • 服务器将请求信息发送至 Servlet;
    • Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
    • 服务器将响应返回给客户端。

    最常用的Tomcat就是实现了servlet规范的servlet容器,servlet规范中定义了一些应用容器的职责、规范、约束等等。

    tomcat简单的工作流程图:

  • 相关阅读:
    使用SQLCOMMAND以及SQLADAPERT 调用存储过程
    将表A的数据复制到表B,以及关于主表和子表的删除办法
    登录次数验证,可能还是有些不足的,希望大家指正
    MVC过滤器
    sql数据库delete删除后怎么恢复,这是网上找的答案。。希望大神验证指教一下
    淘宝前后端分离实践
    P1852 [国家集训队]跳跳棋
    P2154 [SDOI2009]虔诚的墓主人
    P4208 [JSOI2008]最小生成树计数
    P2467 [SDOI2010]地精部落
  • 原文地址:https://www.cnblogs.com/alimayun/p/10699242.html
Copyright © 2020-2023  润新知