servlet学习之第一篇

Servlet的学习第一篇

  1. servelt是javaweb学习的一个分支

  • servelt学习应用那些软件

    1. eclipse ee   开发的应用软件
    2. tomcat          web应用的容器(我们所开发的web应用程序最终都是运行在tomcat容器里面的

   2,什么是静态网页和动态网页

  1. 静态网页:无论多少次运行这个网页,网页源代码不会发生改变
  2. 动态网页:多次打开网页,网页源代码会发生改变

   3,什么是servelt?

  • servlet :是开发动态网页的一种技术

怎么用servlet呢?(掌握)

      • 1.在src目录下新建一个Servlet类
      • 2.新建类的时候点next  next   最后一个页面勾选doGet   和  doPost
      • 3.在新建的servlet类中的doGet方法中可以往页面写出内容

    4,Servlet 架构

下图显示了 Servlet 在 Web 应用程序中的位置。

5,Servlet 可以做什么(作用)???

    1. 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
    2. 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
    3. 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
    4. 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

6,Servlet 包

    1. tomat 自身带有servlet的相关包
    2. javax.servlet 和 javax.servlet.http 包创建

7,环境变量的配置

省略。。。。。。。。。。

8,servlet的生命周期

    1. servlet生命周期可以定义为从创建直到毁灭的整个过程,下面详细说明:
    2. servlet通过调用init()方法进行初始化
    3. servlet通过调用service()方法来处理客户端的请求
    4. servlet通过调用destroy()方法终止(结束)
    5. 而最后,servlet是由jvm的垃圾回收器进行回收垃圾的

 

生命周期的详细讨论

    init()方法
      1. init方法只调用一次。他在第一次创建servlet时被调用,在之后每次用户请求时不再调用,所以,它用于一次性初始化,
      2. servlet创建于用户第一次调用对应于该servlet的url时,但是您也可以指定servlet在服务器第一次启动时被加载
      3. 当用户调用一个servlet时,就会创建一个servlet实例,每一个用户请求都会产生一个新的线程,适当的时候交给goGet或者doPost方法。
      4. init()方法简单的创建或加载一些数据,这些数据被用于servlet的整个生命周期。
    init 方法的定义如下:
    public void init() throws ServletException {
    		// 初始化代码...
    }

    service()方法

      1. service()方法是执行实际任务的主要方法.servlet容器(即Web服务器)调用service()方法来处理来自客户端的(浏览器)的请求,并且格式化的响应写回给客户端
      2. 每一次服务器接收到一个servlet请求的时候,服务器会产生一个新的线程并调回服务。service()方法检查HTTP请求类型(Get,Post,Put,Delete),并且适当的时候调用doGet,doPost,doPut,doDelete等方法
    service()方法的定义如下:
    public void service(ServletRequest request, ServletResponse response)
    			throws ServletException, IOException {
    }

    • service() 方法是给容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。
    • 不需要对 service() 方法做任何动作,需要根据来自客户端的请求类型来重载 doGet() 或 doPost() 。
    • doGet() 和 doPost() 方法是每次服务请求中最常用的方法。

    下面是两种方法的特征:

    doGet()方法

    GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 method的 HTML 表单,它由 doGet() 方法处理。

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// Servlet 代码
    }
    doPost()方法

    POST 请求来自于一个特别指定了 method为 POST 的 HTML 表单,它由 doPost() 方法处理。

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// Servlet 代码
    }

    destroy() 方法

    destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

    在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:

    public void destroy() {
        // 终止化代码...
    }


    架构图

    下图显示了一个典型的 Servlet 生命周期方案。

    1. 第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。
    2. Servlet 容器在调用 service() 方法之前加载 Servlet。
    3. 然后 Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法。





    待续。。。。。












      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值