版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE 10JSP网络编程从入门到知晓.PAGE 11第1章 初识JSP:.;111第第 章章导读初识JSP Web运用开发引见 CGI、Servlet创建动态页面 JSP概述 JSP与ASP、PHP类似技术比较 JSP的优点JSP是Java Server Pages的缩写,是由Sun Microsystems公司倡导,许多公司参与一同建立的一种动态网页技术规范,用于辅助对Web恳求的处置。JSP是建立在Java Servlets模型之上的表达层技术,允许将静态HTML内容与效力器端脚本混合起来生成动态输出。在每天阅读的网站中,能够就有很多是运用JSP对数据进展格式化和显示的。JSP基于Ja
2、va技术,由类似于HTML的标志、JSP标志tag和Java代码片组成,可用来创建跨平台和跨Web效力器的动态网站。本章将让读者初步认识JSP,了解基于Java的效力器逻辑处置恳求的开展过程、什么是JSP及其与Servlet的关系,并论述JSP与ASP、PHP等类似技术的比较,JSP的优势等。1.1 创建Web运用的技术开展过程在讲解本章内容之前,先了解一下运用一个阅读器去访问一个网站时,后台所会发生的情况及网站是如何实现恳求和呼应的。图1.1给读者展现了一个阅读器访问一个Web效力器的整个过程。1用户在阅读器上这里以Microsoft Internet Explorer阅读为例输入网站的UR
3、L地址,这个地址通知阅读器要和网络中的哪台主机进展联络。普通输入的是主机的域名例如sina,域名独一对应一个IP地址,一个IP地址又独一识别一台联网的主机。2阅读器寻觅到指定的主机之后,向Web效力器发出恳求。3Web效力器接纳到恳求并作出相应的分析,然后从存储器中获取一个采用HTML编码的Web页面。Web效力器普通和HTML文件放置在同一个主机上。4效力器把取出的Web页面前往给发出恳求的阅读器作为呼应。5阅读器接纳到相应的Web页面之后,在显示屏上向用户显示这个页面。图1.1 阅读器访问Web过程阅读器与Web效力器之间是经过因特网进展会话的,而这种会话是要经过一种称为HTTPHyper
4、text Transfer Protocol,超文本传输协议的规范网络协议完成的。HTTP是一个恳求/呼应协议。在这个协议的根底上,Web效力器才干和阅读器经过Web交换数据。HTTP又是建立在TCP/IP协议根底之上的,而TCP/IP那么是将因特网中一切计算机衔接起来的一个协议组。这里并不需求读者对HTTP协议以及TCP/IP知识有太多的了解,但要求读者对阅读器发出恳求以及效力器如何发出呼应的机制和原理有一定的了解,这会对读者了解JSP有所协助 。1.1.1 传统Web效力器方式的缺乏传统的Web运用只提供有限的静态Web页面,每个Web页面的内容是坚持不变的。假设网站需求提供更多的信息,就
5、只能重新编写HTML页面并提供链接。传统Web效力器方式存在如下缺乏:不能提供及时的信息。当需求添加新的信息时,必需重新编写HTML文件。由于HTML页面是静态的,并不能根据用户的需求提供不同的信息包括显示格式和内容,不能满足多样性的需求。正由于静态页面存在着这么多的缺乏,因特网软件工程人员很快就转向了CGICammon Geteway Interface,公共网关接口,希望CGI能提供动态生胜利能。1.1.2 CGI实现动态生成HTMLCGI是实如今效力器端执行程序的一种方法。运转程序输出的是HTML页面,然后Web效力器再把这个静态页面前往给阅读器作为恳求的呼应。这样的方式实现了动态生成页
6、面的效果。详细的CGI操作方式如图1.2所示。图1.2 CGI的操作过程和图1.1所示的过程一样,用户需求在阅读器中输入URL地址其实更多情况是用户单击HTML页面上的一个超链接,例如httpshouse/jsp/createhtml.cgi,这个URL地址通知阅读器要去和网络上域名为shouse对应着一个独一的IP地址的主机联络。和效力器获得联络之后,Web效力器会根据给出的jsp/createhtml.cgi地址来运转相应的createhtml.cgi程序,并把生成的HTML页面输出给Web效力器。Web效力器再运用HTTP协议把生成的HTML页面前往给阅读器作为呼应。留意:CGI程序在效
7、力器端执行,并可以和Web效力器在同一个主机上。最流行的CGI言语是Perl和shell脚本,但是也可以运用C、C+以及Java等言语进展编写。CGI可以访问存储数据库中的数据或者其他系统中的文件,实现动态生成的效果。虽然CGI实现了网站动态性,但是CGI也存在很多的缺乏之处。如下:需求为每个恳求启动一个操作CGI程序的系统进程。假设恳求非常频繁,这会带来很大的开销。需求为每个恳求加载和运转一个CGI程序,这也将带来很大的开销。需求反复编写处置网络协议的代码及进展编码,这些任务都是非常耗时的。前面曾经引见过了Java言语可以用来编写CGI程序。但遗憾的是,运用Java编写的CGI程序执行效率更
8、加低下。这是由于要执行一个Java编写的CGI程序,除了首先需求启动一个系统进程之外,还要在进程中启动一个JVMJava Virtual Machine,Java虚拟机,然后才干在JVM中执行Java CGI程序读者应该对Java程序的运转机制有所了解。为理处理CGI所留下来的问题,产生了Servlet。在1.1.3小节将重点引见Servlet的根本原理。1.1.3 Servlet改良的CGI由前面的引见可以知道,运用Java编写的CGI程序正是由于需求为每个恳求都要启动一个系统进程及JVM,这大大降低了执行效率。假设能有方法取消这些开销,即只需求启动一个操作系统进程及一个JVM映像,基于Ja
9、va的CGI就能得到很好的改善。Servlet正是基于这样的想法才产生的。另外,可知Java可以在运转的时候动态地进展加载,所以可以利用这样的功能加载新的Java代码来处置新的恳求。这样就可以只启动一次效力器进程,而且只需求加载一次JVM,之后这个JVM再加载另外的类。基于这样的思想而出现的Servlet执行效率就高得多了。和传统的CGI程序相比,Servlet有如下几个优点:只需求启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销。假设多个恳求需求做同样处置的时候,这时只需求加载一个类,这也大大降低了开销。一切动态加载的类可以实现对网络协议及恳求解码的代码共享,大大降低了任务量。S
10、ervlet可以直接和Web效力器交互,而普通的CGI程序不能。Servlet还可以在各个程序之间共享数据,使得数据库衔接池之类的功能很容易实现。Sun公司在20世纪90年代末就发布了基于Servlet的Web效力器。为了确保加载的各个类之间不起冲突,曾经建立了一个称为Java Servlet API运用编程接口的编码规范。如今根本上一切的效力器都遵照这个编码规范,所以Servlet有很好的移植性。如今的Web效力器例如Tomcat曾经集成了Servlet容器。Servlet容器担任管理加载、卸载、重新加载和执行Servlet代码等操作。下面是一个比较典型的Servlet Java源代码:pu
11、blic class HelloWorldTest extends HttpServlet public void doTest(HttpServletRequest request,HttpServletResponse reponse) throws IOException,ServletException String msg = 登录胜利; response.setContentType(text/html); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(JSP 2.
12、0 Test); out.println(); out.println(); out.println(msg); out.println(); out.println(); 从这段代码可以看到Servlet反复运用了PrintWriter.println()方法来输出相应的HTML页面,以到达动态生成HTML页面的效果。虽然Servlet改动了传统CGI程序的缺陷,但是它也有缺乏的地方:Servlet可以建立动态生成的网页,网页中可以包含从效力器端的Java对象所获得的数据。但是Servlet生成网页的方法是在Java类中嵌入HTML标签和表达式。也就是说对HTML做一个小小的改动时,都需求修
13、正和重新编译Servlet源文件,然后重新部署到Servlet容器当中。当设计HTML页面和编写Servlet代码的不是同一个人时,就会使得修正Servlet变得非常费事。JSP的引入就是要处理以上Servlet所存在的问题。在1.2节将重点引见JSP。1.2 JSP简介Java Server PagesJSP是一种实现普通静态HTML和动态HTML混合编码技术,它是Servlet API的一个扩展。由于JSP页面在编译成Servlet之前也是可以运用的,所以它具有Servlet的一切优点,包括访问Java API。又由于JSP是嵌入到Servlet中关于运用程序的普通表达代码,所以可以把它看
14、成一种“彻底的Servlet。访问一个JSP网站的过程如图1.3所示。图1.3 JSP页面访问表示图Web容器必需包含JSP引擎,它担任动态地对JSP文件进展检测和编译。1.2.1 JSP的优点JSP技术的设计目的是使得构造基于Web的运用程序更加容易和快捷,而这些运用程序可以与各种Web效力器、运用效力器、阅读器和开发工具很好地共同任务。JSP网页可以非常容易地与静态模板结合,包括HTML或XML片段,以及生成动态内容的代码。它比以上讲的Servlet要更加优越。详细而言,JSP有以下几个优点:JSP提供一种模块机制,可以在HTML页面中嵌入基于Java的逻辑代码。运用JSP时,再也没有必要
15、编写和编译用Java言语写的任何代码。而且对JSP进展修正会很快看到效果,这是由于JSP容器或者称JSP引擎会自动检测和重新编译JSP。JSP的运用大大缩短了效力器端基于Java的CGI开发周期,实现了快速开发的目的。由于JSP标志是内嵌在HTML页面中的,所以完全可以先让Web页面设计者来设计页面模板。然后再让Java程序员处置所用的标志以及实现必要的逻辑功能,从而实现图形和规划设计任务与运用开发义务的分别后面引见的MVC设计更能表达这一点。许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种总是经过程
16、序生成整个页面。JSP使得我们可以分别创建这两个部分。例如,下面就是一个简单的JSP页面:欢迎访问网上商店欢迎欢迎,要设置账号信息,请点击这里页面的其他内容程序阐明:程序中除了之间的代码之外都是读者比较熟习的HTML页面。这种HTML代码和脚本程序的很好结合使得动态网站的开发变得非常容易。1.2.2 JSP与ASP和PHP的比较当今创建动态网站的技术不仅有JSP,还有ASP和PHP等。下面是JSP和其他类似或相关技术的一个简单比较。1JSP和ASPActive Server Pages的简单比较ASP也是一种Web效力器端开发的技术,利用它可以产生和执行动态的、互动的以及高性能的Web运用程序
17、。1类似点ASP是由Microsoft公司发布的。JSP与ASP技术非常类似,它们都提供了在HTML代码中嵌入某种程序代码,并由效力器提供的引擎来解释和执行这些程序。在ASP和JSP文件中,HTML部分都是主要担任规定信息的显示款式,而嵌入的程序代码那么用来实现逻辑和控制操作。普通的HTML页面只依赖于Web效力器例如Apache、Microsoft IIS以及Sun Java System Web Server等效力器,而ASP和JSP都需求有相应的言语引擎来分析和执行嵌入的程序代码。程序代码被引擎执行完之后会重新嵌入到HTML代码中去,然后一同由效力器反响给相应的阅读器作为呼应。ASP和J
18、SP都属于面向Web效力器的技术,它们都是在效力器端执行,而客户端阅读器不需求再安装任何附加软件。2区别点首先,ASP运用的编程言语是VBScript之类的脚本言语,JSP那么是Java,这是两者最明显的区别。此外,它们之间还有一个更为本质的区别:两种言语引擎用完全不同的方式处置页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释并执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次恳求时发生,后期恳求将直接调用编译好的文件。3JSP的优势JSP和ASP相比具有两方面的优势:第一,动态部分用Java编写,而不是VBScrip
19、t或其他Microsoft言语,不仅功能更强大而且更易于运用;第二,JSP运用可以移植到其他操作系统和非Microsoft的Web效力器上。2JSP与PHPHypertext Preprocessor的简单比较PHP是一种跨平台的效力器端的嵌入式脚本言语。它交融了C、Java以及Perl言语的语法,并结合本身的特点,可以使得Web开发者快速地编写出动态的页面。PHP还有一个优点就是它完全是免费的,可以从网站上自在下载,并可以获取源代码。1类似点同样,普通的HTML页面只依赖于Web效力器,而PHP页面需求有附加的PHP言语引擎来分析和执行相应的程序代码。执行结果再重新嵌入到HTML代码中去,一
20、同由效力器经过HTTP协议反响给相应的阅读器。另外,PHP和JSP的可移植性非常好,根本可以执行于一切的平台。2区别点JSP在循环语句的执行以及数据库的访问速度上都要比PHP甚至ASP高得多。另外,由于PHP诞生于开源,它得到了迅速普及,但是当JSP出现之后,这种情况就变化了。这是由于PHP只适宜小型站点的开发和运用,而不适于大型的电子商务的站点开发。这是由于PHP缺乏规模支持,并且缺乏多层构造的支持。对于大负荷的网站,只能运用分布式计算来处理问题。而JSP不同,它得到了J2EE框架的支持,可以为JSP开发很多的JavaBean,更复杂的系统可以得到EJB的支持。3JSP的优势JSP很好地实现
21、了多层构造,特别是得到J2EE的支持,如今在MVC方式中,JSP根本上只担任了View的任务,控制View的任务封装到了Servlet中。JSP很适宜开发大型的电子商务网站,而且在平安、可维护以及可扩展性上得到了很高的保证。1.2.3 为什么选择JSP或许读者看完了1.2.2小节之后,就曾经对这个问题有了答案。网站开发最重要的就是开发出来的网站要有很高的稳定性、平安性及可扩展性和维护性,而且运用的工具要尽量简单易用。正是为了兼顾以上两点,JSP提供了大量效力器端的标签Tag。这样可以使Web开发者特别是那些并不懂得Java编程的HTML设计者没有必要编写Java代码就可以完成很多动态内容的操作。而高级脚本编写者或者Java程序员也可以运用这些标签来实现动态效果。除了JSP提供的大量标签之外,它还是依赖“组件为中心的网页开发技术。所谓“组件为中心就是尽量把逻辑操作以及数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论