001 Servlet 介绍

Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

生命周期

  1. 客户端请求该 Servlet;
  2. 加载 Servlet 类到内存;
  3. 实例化并调用init()方法初始化该 Servlet;
  4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy()。
  5. 加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

工作模式

  1. 客户端发送请求至服务器
  2. 服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器
  3. 服务器将响应返回客户端

与 JSP 比较

JSP 和 Servlet 的区别到底在应用上有哪些体现,很多人搞不清楚。简单的说,SUN 首先发展出 Servlet,其功能比较强劲,体系设计也很先进,只是,它输出 HTML 语句还是采用了老的 CGI 方式,是一句一句输出,所以,编写和修改 HTML 非常不方便。

Java Server Pages(JSP)是一种实现普通静态HTML 和动态 HTML 混合编码的技术,JSP 并没有增加任何本质上不能用 Servlet 实现的功能。但是,在 JSP 中编写静态HTML 更加方便,不必再用 println语 句来输出每一行 HTML 代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行 HTML设计,同时留出供 Servlet 程序员插入动态内容的空间。

后来 SUN 推出了类似于 ASP 的镶嵌型的 JSP,把 JSP TAG 镶嵌到 HTML 语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如 ASP,PHP,JSP 都是镶嵌型的语言。 这是 JSP 和 Servlet 区别的运作原理层面。

从网络三层结构的角度看 JSP 和 Servlet 的区别,一个网络项目最少分三层:data layer(数据层),business layer(业务层),presentation layer(表现层)。当然也可以更复杂。Servlet 用来写 business layer 是很强大的,但是对于写 presentation layer 就很不方便。JSP 则主要是为了方便写 presentation layer 而设计的。当然也可以写 business layer。写惯了 ASPPHP,CGI的朋友,经常会不自觉的把 presentation layer 和 business layer 混在一起。

根据 SUN 自己的推荐,JSP中应该仅仅存放与 presentation layer 有关的东西,也就是说,只放输出 HTML 网页的部分。而所有的数据计算,数据分析,数据库联结处理,统统是属于 business layer,应该放在 Java BEANS 中。通过 JSP 调用 Java BEANS,实现两层的整合。

实际上,微软前不久推出的 DNA 技术,简单说,就是 ASP+COM/DCOM 技术。与J SP+BEANS 完全类似,所有的 presentation layer 由 ASP 完成,所有的 business layer 由 COM/DCOM 完成。通过调用,实现整合。

为什么要采用这些组件技术呢?因为单纯的 ASP/JSP 语言是非常低效率执行的,如果出现大量用户点击,纯 SCRIPT 语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。

另外一方面,纯 SCRIPT 语言将 presentation layer 和 business layer 混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页 code,采用组件技术就只改组件就可以了。

综上所述,Servlet 是一个早期的不完善的产品,写 business layer 很好,写 presentation layer 就很臭,并且两层混杂。

所以,推出JSP+BEAN,用 JSP 写 presentation layer,用 BEAN 写 business layer。SUN 自己的意思也是将来用 JSP 替代 Servlet。这是技术更新方面 JSP 和 Servlet 的区别。

可是,这不是说,学了 Servlet 没用,实际上,你还是应该从 Servlet 入门,再上 JSP,再上 JSP+BEAN。

强调的是:学了JSP,不会用 Java BEAN 并进行整合,等于没学。大家多花点力气在 JSP+BEAN 上。

我们可以看到,当 ASP+COM 和 JSP+BEAN 都采用组件技术后,所有的组件都是先进行编译,并驻留内存,然后快速执行。所以,大家经常吹的 Servlet/JSP 先编译驻内存后执行的速度优势就没有了。

反之,ASP+COM+IIS+NT 紧密整合,应该会有较大的速度优势呈现。而且,ASP+COM+IIS+NT 开发效率非常高,虽然bug 很多。

那么,为什么还用 JSP+BEAN?因为 Java 实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必定要找一个通用开发语言进行开发,Java 一统天下的时机就到了。如果微软分拆顺利,从中分出的应用软件公司将成为 Java 的新领导者。目前的 Java 大头 SUN 和 IBM 都死气沉沉,令人失望。希望新公司能注入新活力。不过,新公司很有可能和旧 SUN 展开 Java 标准大战,双方各自制定标准,影响 Java 跨平台。

简单分析了一下 JSP 和 Servlet 的区别和 Java Web 开发方面的发展。随着机器速度越来越快,Java 的速度劣势很快就可以被克服。

时间: 2024-11-05 14:38:34

001 Servlet 介绍的相关文章

Servlet介绍

Servlet介绍 Servlet是一个运行在web服务器上的小的Java程序,它通过接收和响应web客户端的请求,在tomcat服务器中有已经帮我们实现好了Servlet接口的实现类:javax.servlet.GenericServlet和javax.servlet.http.HttpServlet类,我们只需重写其方法即可.关于ServletAPI的介绍如下: public interface Servlet Defines methods that all servlets must i

Servlet介绍(二)

----------接上文Servlet介绍(一)------ 这里着重来说一下服务器获取请求参数的几种方法,首先是通过getParameter方法获取请求参数的值,第二种通过getParameterNames获取所有请求参数的名称,返回一个Enumeration 类型,然后循环迭代取值,第三种是通过getParameterValues获取同一参数名的值,该方法返回一个String数组,第四种,也是最重要的一种是通过getParameterMap方法将请求参数名和值封装到一个map对象中,返回M

Java 之 Servlet介绍

1.介绍 Servlet是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者. Servlet是在服务器上运行的小程序,譬如用java编写的server端程序. 2.流程 客户端访问网站:发送请求至服务器(tomcat) 服务器将请求信息发送至Servlet  Servlet生成响应内容并将其传给服务器

Servlet介绍以及简单实例

一.背景介绍: HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 HTML页面的方法.所有的www文件都需要遵循这个标准,也就注定我们的Web的相应模式. 其中我们关注: "HTTP是一个客户端和服务器端请求和应答的标准(TCP)" Web响应模式:Web的响应模式核心是:请求/响应,对应着HTTP中的请求和应答. "浏览器在地址栏输入响应的URL敲

Servlet 介绍

JSP 的本质就是 Servlet,开发者把编写好的 JSP 页面部署在 Web 容器中后,Web 容器会将 JSP 编译成对应的 Servlet. Servlet 的开发 Servlet 是个特殊的 Java 类,这个 Java 类必须继承 HttpServlet.每个 Servlet 可以响应客户端的请求.Servlet 提供不同的方法用于响应客户端请求. doGet:用于响应客户端的 GET 请求. doPost:用于响应客户端的 POST 请求. doPut:用于响应客户端的 PUT 请

附001.kubectl介绍及使用

一 kubectl介绍 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序.使用kubectl,您可以检查群集资源; 创建,删除和更新组件; 看看你的新集群; 并提出示例应用程序. 更多kubectl参考https://kubernetes.io/docs/reference/kubectl/overview/. 二 kubectl安装 2.1 正式安装--方式一(推荐) 1 [

001 spring介绍

一 . 概述 spring作为当前jee下的事实标准有很有非常好的特性,其核心就是IOC和AOP. 以此为基础可以整合ORM,WEB,MQ等技术,因此可以说spring能帮助我们在开发中的方方面面. 二 .IOC与AOP IOC : 在spring中体现为对Bean的创建和依赖的管理. 在我们的应用之中,几乎所有的业务组件都可以称为Bean,因此创建和管理Bean是我们开发中最为复杂的一部分. IOC就能帮助我们解决这个问题,助我们创建我们想要的Bean,并且将依赖注入到该Bean之中. 完成这

6、jsp和servlet在xml得映射和web.xml介绍

本身肯定会学的东西,今天想起来了,那就记一下吧. 做那个后端的界面时候,有人反应不要hou.jsp,说设个路由随便编乱点,别人猜不到.我也没听懂设个路由是什么意思. 最后一想,这不就是个jsp映射嘛. jsp映射和servlet映射就一条不同,servlet还可以通过@WebServlet(“”)方法. 顺便转载一下web.xml的介绍,方便以后查看 转载自:http://blog.csdn.net/believejava/article/details/43229361 Web.xml详解:

[Java拾遗三]JavaWeb基础之Servlet

Servlet    1,servlet介绍        servlet是一项动态web资源开发技术.        运行在服务器端.        作用:处理业务逻辑,生成动态的内容,返回给浏览器.        本质就是一个类     servlet的入门        1.编写servlet(类)--- 继承HttpServlet        2.编写关系--- web.xml(在WEB-INF下)        3.访问:            路径:http://localhost