Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1971772
  • 博文数量: 424
  • 博客积分: 1291
  • 博客等级: 中尉
  • 技术积分: 2682
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-13 01:34
个人简介

linux oracle 网络安全 编程

文章分类

全部博文(424)

文章存档

2016年(22)

2015年(53)

2014年(57)

2013年(242)

2012年(50)

分类: Web开发

2014-01-18 06:45:29

servlet是纯java,在.java文件中输出http的标记语言   
  而jsp是在标记语言中嵌入java语句  

可以这样理解   
  jsp   :用html包住java   
  servlet:用java包住html


servlet输出html语法时,必须使用out.println()一句一句输出,例如:   
  out.println("");   
  out.println("demo");   
  out.println("hello   world
");   
  out.println("大家好“);   
  out.println(" ");   
  out.println(""); 

  这段程序比较小,所以看起来不是很复杂,但是当网页很复杂时,这种方法就不方便了。   
  下面一段是jsp:   
     
  demo   
     
  <%   
  out.pritnln("hello   world
");   
  out.pritnln("大家好");   
  %>   
     
     
  这样简化了web网页设计的负荷。 


JSP与servlet之间的关系

JSP主要关注于HTML(或者XML)与Java代码的结合,以及加入其中的JSP标记。如果一个支持JSP的服务器遇到一个JSP页面,它首先查看该页面是否被编译成为一个servlet。由此

可见,JSP被编译成servlet,即被转变为纯Java,然后被装载入服务器执行。当然,这一过程,根据不同的JSP引擎而略有不同。

JSP和servlet在应用上的区别

简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的嵌套型的JSP,把JSP TAG嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP都是嵌套型的。 
从网络三层结构的角度看,一个网络项目最少分三层:data layer,business layer,,presentation layer。当然也可以更复杂。
SERVLET用来写business layer是很强大的,但是对于写presentation layer就很不方便。JSP则主要是为了方便写presentation layer而设计的。当然也可以写business layer。

写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentation layer和business layer混在一起。比如把数据库处理信息放到JSP中,其实,它应该放在business layer中。
根据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的部分,也就是说,只放输出HTML网页的部份。而所有的数据计算、数据分析、数据库联结处理,统统是属于

business layer,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。 
为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能

上限,加快执行速度。
另外一方面,纯SCRIPT语言将presentation layer和business layer混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页CODE,采用

组件技术就只改组件就可以了。 
综上所述,SERVLET是一个不完善的产品,写business layer很好,写presentation layer就很逊色许多了,并且两层混杂。所以,推出JSP+BAEN,用JSP写presentation layer,用

BAEN写business layer。SUN自己的意思也是将来用JSP替代SERVLET。
对于复杂的应用,应该采用ENTITY BEAN实现数据存取层,SESSION BEAN实现业务逻辑层,用JSP来调用SESSION BEAN,由SESSION BEAN调用ENTITY BEAN。即采用JSP+EJB来构建一

个复杂的分布式系统。它比JSP+BEAN具有更高的吞吐量,可靠性,安全性。综上所述,对简单应用,可采用JSP+BAEN,对复杂的应用系统,应采用JSP+EJB,SERVLET变的无足轻重

。用JSP完全可替代它。当然不要忘记structs阿:)


据建议的参考书: 
  java核心技术卷   上下   
   jsp2.0   技术手册

阅读(1129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~