您的位置:首页 > Web前端 > JavaScript

jsp servlet之间的关系

2014-06-07 09:41 274 查看
servlet是纯java,在.java文件中输出http的标记语言

而jsp是在标记语言中嵌入java语句

可以这样理解

jsp :用html包住java

servlet:用java包住html

servlet输出html语法时,必须使用out.println()一句一句输出,例如:

out.println("<html>");

out.println("<head><title>demo</title></head>");

out.println("hello world<br>");

out.println("大家好“);

out.println("</body>");

out.println("</html>");

这段程序比较小,所以看起来不是很复杂,但是当网页很复杂时,这种方法就不方便了。

下面一段是jsp:

<html>

<head><title>demo</title></head>

<body>

<%

out.pritnln("hello world<br>");

out.pritnln("大家好");

%>

</body>

</html>

这样简化了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 技术手册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: