CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

JSP与Severlet什么区别

楼主landystar2000(IORI)2006-04-12 00:21:54 在 Java / Web 开发 提问

java初学中.  
  JSP与Severlet有什么区别,他们功能一样吗  
  我要学的话学哪个呢,是不是可以只学一种就可以了,  
  迷茫中,.......  
  谢谢各位大虾指点 问题点数:20、回复次数:25Top

1 楼web700(*FS*的小狗腿子)回复于 2006-04-12 00:38:20 得分 0

就不是说的一个东西Top

2 楼finalguyi()回复于 2006-04-12 00:44:57 得分 1

都是用   java写的,语法差不多。  
  如果学的话还是找本书把两个都学了吧,有讲jsp的书应该就有讲servlet。Top

3 楼Davis129(别信自己)回复于 2006-04-12 00:47:11 得分 2

jsp主要是页面上的实现,servlet主要是逻辑上的控制。jsp在编译执行前是先翻译成一个java文件的,可以说是个类servlet。都是要学的。Top

4 楼best_threewood( Do it !)回复于 2006-04-12 06:59:15 得分 0

这两个都必须学。Top

5 楼yangjiyue(yangjiyue)回复于 2006-04-12 08:04:37 得分 0

都可以互相替换的  
  不过楼上的说得对  
  都学Top

6 楼goldmine()回复于 2006-04-12 08:19:49 得分 2

JSP:   在Html中嵌套Java  
  Servlet:   在Java中嵌套HtmlTop

7 楼wsk_228(qing_feng)回复于 2006-04-12 08:31:48 得分 3

一.   Servlet是什么?    
  客户机/服务器计算的发展。Java提供了一整套客户机/服务器解决方案,在这个方案中,程序可以自动地下载到客户端并执行,这就是applet。但是它仅仅是问题的一半。问题的另一半就是Servlet。    
  servlet可以被认为是服务器端的applet。servlet被Web服务器加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种作业,然后返回结果。使用servlet的基本流程如下:    
  ·客户端通过HTTP提出请求.    
  ·Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载,Web服务器将把它加载到Java虚拟机并且执行它。    
  ·servlet将接收该HTTP请求并执行某种处理。    
  ·servlet将向Web服务器返回应答。    
  ·Web服务器将从servlet收到的应答发送给客户端。    
  由于servlet是在服务器上执行,通常与applet相关的安全性的问题并不需实现。要注意的是Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。    
  而servlet是用Java编写的,所以它们一开始就是平台无关的。这样,Java编写一次就可以在任何平台运行(write   once,run   anywhere)的承诺就同样可以在服务器上实现了。servlet还有一些CGI脚本所不具备的独特优点:   (本人对CGI并不是十分了解,所以这些特点不能完全的体会到,这也是摘自论坛的贴子,请见谅)    
  servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。与之相反,CGI脚本是短暂的、瞬态的。每一次对CGI脚本的请求,都会使Web服务器加载并执行该脚本。一旦这个CGI脚本运行结束,它就会被从内存中清除,然后将结果返回到客户端。CGI脚本的每一次使用,都会造成程序初始化过程(例如连接数据库)的重复执行。    
  servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。    
  servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。    
  servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。    
       setvlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们,就像你使用applet一样。    
  那么,Servlet是怎样执行的?怎样来写一个Servlet,它的基本架构是怎么样的?    
  这些问题,将在后面部分给予介绍。    
  二.JSP与Servlet    
  现在已经对Servlet有了大概的了解,现在我们就来说说JSP和Servlet的关系。    
  JSP是一种脚本语言,包装了Java   Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。尽管如此,JSP仍没有超出Java和Servlet的范围,不仅JSP页面上可以直接写Java代码,而且JSP是先被译成Servlet之后才实际运行的。JSP在服务器上执行,并将执行结果输出到客户端浏览器,我们可以说基本上与浏览器无关。它是与JavaScript不同的,JavaScript是在客户端的脚本语言,在客户端执行,与服务器无关。    
   
  那么JSP是什么?就是Servlet.    
  JSP与Servlet之间的主要差异在于,JSP提供了一套简单的标签,和HTML融合的比较好,可以使不了解Servlet的人可以做出动态网页来。对于Java语言不熟悉的人(比如像我),会觉得JSP开发比较方便。JSP修改后可以立即看到结果,不需要手工编译,JSP引擎会来做这些工作;而Servelt缺需要编译,重新启动Servlet引擎等一系列动作。但是在JSP中,HTML与程序代码混杂在一起,而Servlet却不是这样。也许大家比较混乱了,那么Servlet又是什么?下面我们对JSP的运行来做一个简单的介绍,告诉大家怎样来执行一个JSP文件:    
  当Web服务器(或Servlet引擎,应用服务器)支持JSP引擎时,JSP引擎会照着JSP的语法,将JSP文件转换成Servlet代码源文件,接着Servlet会被编译成Java可执行字节码(bytecode),并以一般的Servlet方式载入执行    
  JSP语法简单,可以方便的嵌入HTML之中,很容易加入动态的部分,方便的输出HTML。在Servlet中输出HTML缺需要调用特定的方法,对于引号之类的字符也要做特殊的处理,加在复杂的HTML页面中作为动态部分,比起JSP来说是比较困难的。    
  除去了转换和编译阶段,JSP和Servlet之间的区别实在是不大。    
  JSP引擎通常架构在Servlet引擎之上,本身就是一个Servlet,把JSP文件转译成Servlet源代码,再调用Java编译器,编译成Servlet。这也是JSP在第一次调用时速度比较慢的原因,在第一次编译之后,JSP与Servlet速度相同.下面我们来看看为什么他们在第一次编译后再编译的速度相同:    
  在整个运行过程中,JSP引擎会检查编译好的JSP(以Servlet形式存在)是否比原始的JSP文件还新,如果是,JSP引擎不会编译;如果不是,表示JSP文件比较新,就会重新执行转译与编译的过程。    
  为了有个深刻的了解,我们看一下JSP的运行和开发环境:    
  浏览器:常见的浏览器有IE和Netscape两种。    
  数据库:常用的数据库有Oracle,SQL   Server,Informix,DB2,Sybase,Access,MySQL等。    
  操作系统:常见的有Windows,Linux,以及各种Unix系统。    
  Web服务器:常见的有IIS,Apache,Netscape   Enterprise   Server等。    
  JSP引擎:一般JSP引擎都以Servlet引擎为基础,并以Servlet的形式出现。同时,在各种免费和商业引擎的实现中,Servlet引擎和Jsp引擎通常也是一起出现,我们成为Servlet/JSP引擎,或从某种成为JSP引擎。    
  JSP引擎是可以提供JSP和Servlet运行支持并对其生存周期进行管理的系统级实体。    
  在JSP页面第一次被请求时,JSP引擎会将JSP原始文件转换成Servlet源代码,然后调用Java编译器,编译成Servlet,并在Servlet引擎中执行。当再次有请求的时候,JSP引擎会见差异编译好的JSP是否比原来的JSP原始文件要新,如果是,运行Servlet;如果不是,表示文件已经更新的了,就会从新执行转换和编译的过程。    
  说到这里,也基本把JSP和Servlet的关系说清楚了,从我的感觉上看用JSP就可以了,简单又方便,又可以和Bean   很好的兼容使用,功能又很强大,为什么又出现了Servlet,它又有什么用?何况它的编写又相对复杂。为了把问题说得更清楚一点,我想在这里说一下历史,顺便再讲一下为什么还要用Servlet,Servlet的好处是什么。    
  Top

8 楼langya333(potato)回复于 2006-04-12 08:33:41 得分 2

都学。其实都很简单。加油吧!  
   
  jsp主要是界面显示的,servlet主要是后台控制的。要好好的用这两个东东Top

9 楼landystar2000(IORI)回复于 2006-04-12 13:50:37 得分 0

谢谢各位高手的指点,我还想问一下,applet和jsp与sevrlet这两个又有什么关系?  
  Top

10 楼cross0661(Cross)回复于 2006-04-12 14:46:05 得分 1

applet现在基本上已经不用了,这是是要下载到本机来运行一个JAVA小程序,现在已经被淘汰了,基本上可以不学Top

11 楼VisualLion(狮子)回复于 2006-04-12 15:06:04 得分 0

本质上没有区别,只是展现给你的方式不同而已。Top

12 楼MagicianLiu(魔术师·刘)回复于 2006-04-12 15:19:49 得分 2

JSP是要编译成Servlet的。。JSP出现主要是弥补Servlet表现层的不足(如果一个非常复杂的HTML网页你全部都用response.write写出来看看。呵呵)。可以先用网页设计工具设计出网页,可以嵌套JAVA语句。然后有服务器编译成Servlet调用。Top

13 楼liuzhijie0451(小刘)回复于 2006-04-12 15:56:31 得分 0

我本人也做程序很久了,只学JSP就可以了,哪个Servlet没什么太大用,Top

14 楼xdy3008(IT难民营执行主席)回复于 2006-04-12 17:44:09 得分 1

同意楼上      
   
  个人认为  
   
    现在struts   hibernate   spring   等技术都出来了   ,servlet现在基本上用的很少了  
   
  学习了解就可以了Top

15 楼xlyyc(宇)回复于 2006-04-12 18:30:37 得分 1

struts   hibernate   spring   等不过是封装了servlet,还是要用servlet的Top

16 楼boabc2304()回复于 2006-04-12 19:07:17 得分 1

jsp文件在执行的时候,会翻译成servlet文件,所以还是要有servlet基础的Top

17 楼qingyuan18(zealot_tang)回复于 2006-04-13 14:48:16 得分 1

建议楼主还是用jsp吧,现在用servlet写J2EE的没几个了,servlet太烦了,java代码中嵌一大堆html,看着就头晕~~Top

18 楼jiang_xiao(原来秋天)回复于 2006-04-13 14:50:11 得分 0

不过如果学了servlet就能更好的理解struts框架Top

19 楼NerGP(大雄)回复于 2006-04-13 14:51:33 得分 1

jsp是在servlet上发展起来的,都是一些开源的标签库,学jsp就是学习如何这些标签库,还是比较多的,需要一点时间,   我觉得还是先看servlet比较好,这些毕竟是基础Top

20 楼norwolfli(烟灰)回复于 2006-04-13 15:24:12 得分 0

servlet要学,很有用!Top

21 楼advancejar(金谜)回复于 2006-04-13 15:26:36 得分 1

jsp主要是界面显示的,servlet主要是后台控制的Top

22 楼jichongchong(jichongchong)回复于 2006-04-13 16:21:23 得分 0

jsp是servlet的扩展  
  只是表现形式不同  
  着重点不同Top

23 楼jinhao_yanzi(软件小子)回复于 2006-04-13 17:12:15 得分 0

先学JAVA语法,再学JSP,再看JAVA思想,然后看SENRVLETTop

24 楼hanxg666()回复于 2006-04-13 18:17:05 得分 1

servlet还是要学的,因为如果你想做大程序,servlet是好的,因为它的代码重用性高,而jsp就不一样了,它要你没开发一个网页,一个网站什么的,都要重新写。太麻烦了。还有它还可以使你的前台显示页面和后台控制分工比较清,后台人员即使不会美工也可以做。各做各的,分工明确,容易做的更专业1Top

25 楼zuoyangguang(瓜瓜)回复于 2006-04-13 18:51:58 得分 0

都是要学的,不知道是老弟还是小妹了,这都是基础,碰到问题再来问吧,都是这么一步一步走过来的Top

相关问题

关键词

得分解答快速导航

  • 帖主:landystar2000
  • finalguyi
  • Davis129
  • goldmine
  • wsk_228
  • langya333
  • cross0661
  • MagicianLiu
  • xdy3008
  • xlyyc
  • boabc2304
  • qingyuan18
  • NerGP
  • advancejar
  • hanxg666

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo