Servlet基础

来源:互联网 发布:成都软件行业协会名录 编辑:程序博客网 时间:2024/06/06 05:33

什么是Servlet

  • 是运行在Web服务器或应用服务器上的Java程序
  • 在Web上创建动态内容的有效而强大的解决方案
  • 有容器来管理什么周期与Web容器进行交换
  • 有sun规范了其功能

Servlet规范的组成

  1. Web应用程序。

  2. Servlet与httpServlet

    2.1 Servlet用于创建动态的网页,httpServlet天生就支持http

  3. 过滤器

    3.1 Servlet2.3版本后引入了过滤器的概念,http所有请求都可以设置让它经过过滤器。

  4. 安全

    4.1 Servlet使用了jvm提供的安全功能。

  5. 国际化

    5.1 能够开发任何语言的内容。来自于Java平台的国际化和本地支持。

Servlet的API结构

  1. API就是专门用于开发Servlet的java类和接口,Web容器和Servlet之间用API进行通信。
  2. 一个Servlet程序就是运行在服务器端的一个Servlet API的java类。定义了与容器的一些规范。
  3. javax.Servlet.GenericServlet 当前这个类实现了Servlet的基本特征和功能,是普通的Servlet。
  4. javax.Servlet.http.HttpServlet 实现了GenericServlet.它也是一个Servlet。还对http进行了支持。
  5. 当我们启动服务器的时候,用户访问Servlet,容器会自动将http请求数据封装到HttpServletRequest,也会产生一个HttpServletResponse对象。
  6. 每次请求都会到达Service()方法。容器自动调用。
  • 容器一旦启动,会调用应用程序里面的web.xml文件,请求过来的内容会自动调用Service方法

  • Servlet javax.Servlet.http.HttpServlet提供了七个方法,其中doGet和doPost使我们常用的,doGet和doPost是Service的代理。Service会根据具体的请求方法,将权利转交给相应的方法进行处理,它只需要控制。

Servlet生命周期

  1. 容器装载实例化servlet

  2. init初始化

  3. service服务方法

  4. 销毁 destory()方法

  5. 启动容器,默认的配置不会调用init方法,当第一次访问时才调用init方法,以后每次访问都进入service方法,自动创建多线程。容器关闭的时候,容器自动销毁servlet。 整个过程中init方法与destroy方法只会执行一次,service执行多次。

ServletContext

  1. 容器一旦启动会自动创建一个上下文对象(servletContext),用于描述servlet运行环境的一些信息。使得servlet可以和容器进行通信。代表当前web应用。
  2. servletConfig对象维护了ServletContext对象的引用,可以通过config-getServletContext获取到上下文对象。 3.一个web应用中的所有servlet共享一个ServletContext对象。每个servlet之间可以通过ServletContext来进行通信,也称为context域对象。 所有的用户也共享一个ServletContext。
0 0