Servlet剖析

              通过查看http://blog.csdn.net/wu_qing_man/archive/2007/01/18/1487123.aspx中的HelloWorld.java,可以发现:

l         它扩展一个名为HteepServlet的类。

l         它实现2个方法: doGet()doPost()

 

1.         Servlet的标志:javax.servlet.Servlet接口

一个Java类之所以可以作为一个Servlet,有一个突出的特点,这就是所有Servlet都必须实现javax.servlet.Servlet.Servlet接口。这个接口是容器(应用服务器)和servlet之间的合约。

l         所有servlet都必须实现的javax.servlet.servlet接口的方法:

n         init() 容器调用这个方法来初始化servlet

n         destroy() 容器调用这个方法来指示servlet:它的使命已经结束了。

n         getServletInfo() 容器或工具调用这个方法来得到有关Servlet的信息。返回值是一个串,其中可能包含开发商名、版本声明等

n         getServletConfig() 容器调用这个方法来得到与这个servelt实例相关联的javax.servlet.ServletConfig对象。

n         service() 这是最关健的servlet方法。容器调用这个方法向servlet传递一个请求来进行处理。Servlet必须处理这个请求,并提供一个响应。

2.         通过HttpServlet辅助类实现Servlet接口

大多数servlet并没有直接实现javax.servlet.Servlet接口。而是通过HttpServlet辅助类实现Servlet接口。

HttpServlet抽象类会透明地对HTTP协议细节进行编码,使我们能够把重点放在Servlet的核心功能上。

作为HttpServlet抽象类的一个子类,可以覆盖如下方法:

n         doGet() 处理通过HTTP GET动作发送数据的到来的请求。

n         doPost() 处理通过HTTP POST动作发送数据的到来的请求。

n         doPut() 处理通过HTTP PUT动作发送数据的到来的请求。

n         doDelete() 处理通过HTTP DELETE 动作删除服务器内容的到来请求。

n         init() javax.servlet.Servlet接口的init()方法相同

n         destroy() javax.servlet.Servlet接口的destroy()方法相同

n         getServletInfo() javax.servlet.Servlet接口的getServletInfo()方法相同

 

3.         覆盖想实现的方法

HttpServlet中的任何方法,如果没有覆盖,就会釆用javax.servlet.http.HttpServlet类中提供的一个默认实现。

 

Servlet的生命周期:

              容器可以为到来的每一个请求创建一个Servlet实例,不过这种做法的效率不高。而且会占用服务器上的大量内存。为了更高效地处理到来的请求,容器必须对servlet实例的创建进行优化。每个Servlet2.4(2.3)容器都采用以下方法进行优化:

l         尽可能少地创建同一Servlet的实例(通常只为一个Servlet创建一个实例),并重用这个实例来处理所有到来的请求。

l         对所创建servlet实例进行适当的管理,服务器内存不太够时,要撤销较老的未用实例。

每个servlet(或服务器端软件组件)都有一个生命期。容器创建一个实例时,生命期开始。容器把该实例从服务中删除并撤销时,生命期终止。

这个生命周期说明了容器如何管理表示servletJava对象实例,可以总结为以下几个步骤:

1.         第一次访问一个servlet时会创建它的一个实例。

2.         如果需要,要初始化这个实例。

3.         维护这个实例来处理将来的请求。

4.         如果需要为新的servlet实例让出空间,则撤销该实例。

 

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值