Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性 , 可以生成动态的Web页面。它担当客户请求(Web浏览器或其它HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet是由Web服务器进行 加载,该Web服务器必须包含支持Servlet的Java虚拟机。---理解为 (Servlet依赖与容器)
Servlet的工作原理:
客户端发送请求至服务器
服务器启动并调用Servlet,Servlet根据客户端的请求生成响应内容并传给服务器
服务器将响应返回客户端
与传统CGI的比较:
方便:Servlet提供了大量的实用工具例程,例如自动解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
功能强大:在Servlet中,许多传统的CGI程序很难完成的任务都可以轻松地完成。例如Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能在各个程序之间共享数据,使数据库连接池之类的功能很容易实现。
可移植性好:
Servlet用Java编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Mircosoft IIS或者WebStar。几乎所用的主流的服务器都直接或通过插件支持Servlet。
节省投资:
不仅有许多廉价甚至免费的Web服务器可供个人或小规模的网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。
Java Servlet与Jsp的比较
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在 JSP中编写HTML更加方便,不必再用println语句输出每一行的HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开 :比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入的动态内容的空间。