您的位置:首页 > 编程语言 > Java开发

【Java Web】——Servlet

2016-08-08 22:05 190 查看
  典型的WEB应用程序的访问过程是——请求响应模式(request-response)即用户在浏览器地址栏中输入一个网址并回车,浏览器会向服务器发出一个HTTP请求,服务端程序接收这个请求,并进行处理,然后发送一个回应,浏览器接收回应并将显示出来。而在Java
web中这一过程都是由Servlet来完成的。那么Servlet是如何来完成这个过程的呢?我们就来介绍一下Java Web的核心程序——Servlet。

 
一、Servlet的名称由来

   Server+applet 使用Java编写服务端小应用程序,主要用来处理网页的交互式浏览。是根据J2EE十三个规范里面的Servlet规范编写的接口。

   Servlet是一种实现了javax.servlet.Servlet接口的类,此接口规定了特定的方法来处理特定的请求。

  二、实现过程

                


     1、客户端将请求发送至服务端;
     2、服务端将请求发送给Servlet;
     3、Servlet 生成响应内容(处理结果)并将其传给服务器,服务器动态生成响应内容。
     4、服务器将响应返回给客户端。

                

 
三、生命周期



1、客户端请求该 Servlet;

2、加载 Servlet 类到内存;

3、实例化并调用init()方法初始化该 Servlet;

4、调用service()方法处理客户端的请求(一般为doGet()或doPost(),其他的还有doDelete(),doTrace()等);

5、调用destroy()方法进行销毁;

6、销毁完毕后进入JVM,进行垃圾回收。

  四、特点

   1、高效 

   在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。 

    2、方便 

    Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。 
      

    3、功能强大 

    在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。 

    4、可移植性好 

    Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。 

    5、节省投资 

    不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。 
       

 五、总结

   好久没画图了,来张导图吧,这篇博客总结的比较简单,只是介绍了个大概,具体的还要在实例中去体会。

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: