当前位置:首页>开发>正文

JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么。 jsp和Servlet的关系

2023-07-16 02:01:29 互联网 未知 开发

 JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么。 jsp和Servlet的关系

JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么。

相同点:都是使用JAVA语言进行开发的,联系:JSP依赖于Servlet。不同点如下:
一、主体不同
1、JSP:是由Sun Microsystems公司主导创建的一种动态网页技术标准。
2、Servlet:称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性。

二、功能不同
1、JSP:部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。
2、Servlet:功能在于交互式地浏览和生成数据,生成动态Web内容。
三、特点不同
1、JSP:技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
2、Servlet:Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
参考资料来源:百度百科-servlet
参考资料来源:百度百科-JSP

jsp和Servlet的关系

JSP最终是要转化成servlet来执行的,楼主有个误区,不是一个jsp运行会生成一个对应servlet。而是jsp运行的时候就是转成了servlet,也就是java程序来执行。其实jsp的中的标签就相当于servlet中out.println()打印出的文本
比如我response.out.println("hello")就相当于jsp中的hello
。jsp也是一个servlet,有的时候我们可以把请求交给jsp。一个servlet的response,就是这个servlet要发送给浏览器的东西,如果你在这个response中打印了,文本,就会发送文本给浏览器,如果打印标签就会发送标签给浏览器,这样浏览器就解析成html了

hello.jsp


hello



执行的时候先是转成
servlet
doGet()
{
response.getWriter.println(" hello ")
}
然后发送

hello


这些文本给浏览器,浏览器就解析为一个html了

Jsp和servlet有那些相同点和不同点,他们之的联系

jsp主要就是页面视图,它的内容就是html javascript进行页面设计。
servlet主要是一个控制器,进行的是业务逻辑处理。
在专业的就是:
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,实现两层的整合。
实际上,微软前不久推出的DNA技术,简单说,就是ASP COM/DCOM技术。与JSP BEANS完全类似,所有的presentation layer由ASP完成,所有的business layer由COM/DCOM完成。通过调用,实现整合。
为什么要采用这些组件技术呢?因为单纯的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。

其实它们的功能是一样的,jsp是servlet的扩展,
只不过当你调用jsp是它先转换成servlet
简单的讲,如果你做的程序以代码为主,你该用servlet
如果是以界面为主,你该用jsp

--------------------------------------------------------------------------------

Servlet与JSP 之间是什么样的关系?

1.JSP是一种脚本语言,包装了Java Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。
2.尽管如此,JSP仍没有超出Java和Servlet的范围,不仅JSP页面上可以直接写Java代码,而且JSP是先被译成Servlet之后才实际运行的。
3.JSP在服务器上执行,并将执行结果输出到客户端浏览器,我们可以说基本上与浏览器无关。它是与JavaScript不同的,JavaScript是在客户端的脚本语言,在客户端执行,与服务器无关。

JSP与Servlet之间的主要差异在于:
1.JSP提供了一套简单的标签,和HTML融合的比较好,可以使不了解Servlet的人可以做出动态网页来。对于Java语言不熟悉的人(比如像我),会觉得JSP开发比较方便。
2.JSP修改后可以立即看到结果,不需要手工编译,JSP引擎会来做这些工作;而Servelt缺需要编译,重新启动Servlet引擎等一系列动作。但是在JSP中,HTML与程序代码混杂在一起,而Servlet却不是这样。

JSP和servlet的关系是什么?

JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。
从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。

jsp和servlet之间的关系

1.JSP第一次运行的时候会编译成servlet。
2.jsp是web开发技术,servelt是服务器端运用的小程序,我们访问一个jsp页面时,服务器会将这个jsp页面转变成servelt小程序运行得到结果后,反馈给用户端的浏览器。。
3.servlet相当于一个控制层再去调用相应的javabean处理数据,最后把结果返回给jsp。
4.servlet主要用于转向,将请求转向到相应的jsp页面。
5.jsp更多的是进行页面显示,Servlet更多的是处理业务,即jsp是页面,servlet是实现jsp的方法。

servlet跟jsp什么关系?

最原始的时候并没有jsp,全部都是servlet,使用out.println打印网页内容,开发人员很痛苦,后来效仿asp,做出了jsp,其实jsp就是一个统一的servlet,只是jsp在翻译成servlet的过程中比较复杂

现在来说,可以用纯jsp完成,业务逻辑使用逻辑页,也可以使用原先的servlet,但是现在基本上都是分开,业务逻辑用servlet,页面显示用jsp

举个栗子,jsp是长相,servlet是内在