servlet概述(一)

1.servlet 产生背景

  servlet 技术的出现,是由于web的应用和发展,从刚开始的静态html页面,到实现动态交互的JavaScript页面,以上的实现都在浏览器端,如果某个浏览器不支持某种脚本语言,那么功能就不能实现,在此情况下,就提出web服务器动态生成html页面。servlet技术由此诞生。

2.servlet 规范

  servlet的诞生刚开始主要为了解决web服务器(特定厂商或者组织研发)和web应用程序(商业机构(java程序员开发))之间的访问问题。访问的标准由谁来顶呢?当然是当时比较牛逼的sun公司制定,sun公司制定出了统一的java 接口(统称位java servlet API)。sun公司把这一系列的java 标准接口 API 和规范统称为 ——servlet 规范。

3. servlet

  狭义的Servlet是指Java语言实现的一个接口(servlet 规范),广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

4.servlet 相关接口

  接口关系图:

  

  4.1ServletContext 接口

    ServletContext 是Servlet 与Servlet容器之间直接通信的接口。ServletContext的对象是application是在项目初始化时被创建的。故servletContext随着应用初始化而被创建,随着应用的结束而被销毁。

  4.2ServletConfig 

    在应用初始化的时候,Web容器在创建Servlet对象时会自动将web.xml中的servlet配置这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。所以我们可以通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

  4.3 servlet 接口

    servlet 初始化有两种情况:

    一、随应用初始化时初始化,即在web.xml中设置<load-on-startup>参数</load-on-startup>,参数为整数值并且大于0,而且值越少,优先级越高。在springmvc项目中经常会用到这个配置

    二、在应用运行中时,servlet被客户端请求时初始化。

    servlet销毁:

    servlet自身调用destroy()方法、servlet容器停止运行、项目停止运行都会销毁该servlet实例。

  4.4 ServletRequest

    ServletRequest的对象是request,其生命周期为request域,一个请求结束,则request对象结束。

  4.5 ServletResponse

    ServletResponse的对象是response,一次响应结束,则response对象结束。

  4.6 HttpServlet和HttpServletRequest、HttpServletResponse

    他们之间的关系就好像Servlet和ServletRequest、ServletResponse之间的关系一样,只不过做了少部分封装而已。

原文地址:https://www.cnblogs.com/wwyx-xi/p/7545370.html