jsp和servlet

jsp和servlet,第1张

概述###基本概念 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序... 基本概念

Servlet

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他http客户程序)与服务器响应(http服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

JsP

JsP技术使用Java编程语言编写类XML的Tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过Tags和scriptlets访问存在于服务端的资源的应用逻辑。JsP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JsP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
JsP是一种脚本语言,包装了Java Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JsP标签(TAG)提供了网页动态执行的能力。JsP提供了一套简单的标签,和HTML融合的比较好,可以使不了解Servlet的人可以做出动态网页来。对于Java语言不熟悉的人,会觉得JsP开发比较方便。JsP修改后可以立即看到结果,不需要手工编译,JsP引擎会来做这些工作;而Servelt缺需要编译,重新启动Servlet引擎等一系列动作。但是在JsP中,HTML与程序代码混杂在一起,而Servlet却不是这样。下面我们对JsP的运行来做一个简单的介绍,告诉大家怎样来执行一个JsP文件:当Web服务器(或Servlet引擎,应用服务器)支持JsP引擎时,JsP引擎会照着JsP的语法,将JsP@R_403_6532@成Servlet代码源文件,接着Servlet会被编译成Java可执行字节码(bytecode),并以一般的Servlet方式载入执行JsP语法简单,可以方便的嵌入HTML之中,很容易加入动态的部分,方便的输出HTML。在Servlet中输出HTML缺需要调用特定的方法,对于引号之类的字符也要做特殊的处理,加在复杂的HTML页面中作为动态部分,比起JsP来说是比较困难的。

两者之间的联系和区别
【1】JsP第一次运行的时候会编译成Servlet,驻留在内存中以供调用。
【2】JsP是web开发技术,Servlet是服务器端运用的小程序,我们访问一个JsP页面时,服务器会将这个JsP页面转变成Servlet小程序运行得到结果后,反馈给用户端的浏览器。
【3】Servlet相当于一个控制层再去调用相应的JavaBean处理数据,最后把结果返回给JsP。
【4】Servlet主要用于转向,将请求转向到相应的JsP页面。
【5】JsP更多的是进行页面显示,Servlet更多的是处理业务,即JsP是页面,Servlet是实现JsP的方法。
【6】Servlet可以实现JsP的所有功能,但由于美工使用Servlet做界面非常困难,后来开发了JsP。
【7】JsP技术开发网站的两种模式:JsP + JavaBean;JsP + Servlet + JavaBean(一般在多层应用中,JsP主要用作表现层,而Servlet则用作控制层,因为在JsP中放太多的代码不利于维护,而把这留给Servlet来实现,而大量的重复代码写在JavaBean中)。
【8】二者之间的差别就是,开发界面是JsP直接可以编写。
比如在JsP中写table标记:Servlet需要加入:out.println(“JsP文件在被应用服务器(例如:Tomcat、Resin、Weblogic和Websphere),调用过之后,就被编译成为了Servlet文件。也就是说在网页上显示的其实是Servlet文件。Tomcat下面JsP文件编译之后生成的Servlet文件被放在了work文件夹下,JsP中的HTML代码在Servlet都被out出来,而JsP代码按照标签的不同会放在不同的位置。
【9】JsP中嵌入JAVA代码,而Servlet中嵌入HTML代码。
【10】在一个标准的MVC架构中,Servlet作为Controller接受用户请求并转发给相应的Action处理,JsP作为VIEw主要用来产生动态页面,EJB作为Model实现你的业务代码。

Jsp和servlet的关系

servlet是在服务器端执行的java程序,只不过它有专门的一套规则(就是我们平常所说的API)
Jsp说得简单点就是用另一套简单的规则写的servlet程序,它可以写java代码,还可以写HTML代码,JavaScript,CSS等
但是Jsp到服务器端首先会被转成servlet程序然后就按照servlet的执行顺序执行了(Jsp第一次运行时要先翻译成JAVA代码,在编译成class文件 而那个JAVA代码就是servlet)

Jsp 要先翻译,注意是翻译成servlet才能执行
比如 test.Jsp 要变成 test_Jsp.java 然后编译成 test_Jsp.class
而 test_Jsp.java 本身就是一个servlet.
所以 Jsp只是servlet的一个变种,方便书写HTML内容才出现的。
所以servlet是根本,所有Jsp能做的,servlet全能做

JsP和SERVLET到底在应用上有什么区别,很多人搞不清楚。我来胡扯几句吧。简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的镶嵌型的JsP,把JsP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JsP都是镶嵌型的SCRIPT语言。
从网络三层结构的角度看,一个网络项目最少分三层: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。
可是,这不是说,学了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夸平台。
另外,现在的机器速度越来越快,JAVA的速度劣势很快就可以被克服。

生产场景中JsP的使用选择

使用Jsp:
通过EL语言、JsP标记库等等来获取数据、构建页面以及调用方法,动态数据通过AJAX获取;
压力在服务器端;
可能安全;
前端页面的实现和调试麻烦,依赖后端,不能独立开发;
部分接口可以重用原来项目代码

不使用Jsp:
全异步,完全通过AJAX获取数据和构建页面;
压力在客户端;
可能没有Jsp安全;
开发和调试页面方便,不依赖后端;
接口代码需要新增较多(controller层)

综上,可以用HTML先做页面的demo,把页面布局和样式做好,数据部分不管;
与此同时,前后台的接口可同时开发;
接口和页面开发完后再把HTML转成Jsp,通过EL语言、JsP标记库、以及AJAX实现数据的获取

总结

以上是内存溢出为你收集整理的jsp和servlet全部内容,希望文章能够帮你解决jsp和servlet所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1209996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存