浅探JSP实践要点(Highlights of JSP Practise) .doc_第1页
浅探JSP实践要点(Highlights of JSP Practise) .doc_第2页
浅探JSP实践要点(Highlights of JSP Practise) .doc_第3页
浅探JSP实践要点(Highlights of JSP Practise) .doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅探JSP实践要点(Highlights of JSP Practise) 摘要:本文着重介绍JSP技术开发动态网站中的各种优缺点,简要分析JSP技术和ASP技术的不同之处。 关键字:JSP,Java,JDBC-ODBC,JavaBean。 一、引言 在Inter上的众多网站中,基于L和JavaScript所取代,这些技术极大地改善了用户界面,但当它们尝试做一些深入的工作时,它们开始遇到客户端浏览器不兼容、服务器负担过重、访问速度下降以及安全性的问题。JSP技术就是解决这些问题的一把金钥匙,本文主要介绍在使用JSP技术构建动态网站的过程中对该技术的一些要点和难点。 二、JSP技术要点 JSP是基于JavaServlet以及整个Java体系的L文件中加入Java程序片段和JSP标记,就构成了JSP网页。L格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求很低。如图1所示,在用户连接JSP网站时,用户请求网页,JSP页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean处理请求并将返回的数据封装成HTML页面返回给用户。 利用JSP编写的程序有许多优势: 1、程序写一次,到处可以运行:JSP在设计时,充分考虑到应用平台的无关性。依赖于Java的可移植性,JSP得到目前许多流行OS平台的支持,可在Apache、Netscape、IIS等服务器上执行。 2、执行速度快:JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快的多。 3、Java的优势:JSP技术是用Java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的Java技术使得开发人员的工作在其他方面也变得容易和简单。在Windoicrosoft的SQLServer。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。 在本地数据库程序使用Microsoft的Access等数据库时,我们可以使用Sun公司开发的JDBC-ODBCBridge,用此技术JSP程序就可以访问带有ODBC驱动程序的数据库。这样即保证了JDBC的优点而且保证了纯JSP程序的安全性、完整性、健壮性和可移植性,又可以使用Microsoft提供的ODBC数据源与Access连接。不管对方是何种数据库,只要有ODBC接口就可以直接使用JDBC-ODBCBridge与数据库连接,而无需因为后端数据库的改变而改动相应的程序代码,实现了应用层与数据库层的完美分离。如果我们需要变后端数据库为MySQL,只需要在ODBC数据源中安装了MySQL的驱动程序之后,就可以直接使用MySQL数据库了。 2、内建的组件 在实现网站的时候,由于客观需要,为了方便区分本地局域网用户与远端连上来的用户并提供相应的权限,我们采用内建的组件Request来捕获每一个联到服务器上的用户的IP地址,通过比较之后给出相应的权限。这样既可以方便管理,而且可以做到本局域网内用户可以使用网站内所有公开的和不对外公开的资源。我们还可以将现有的方法加以改进,将各种IP地址输入到数据库中并且赋予不同的IP地址不同的权限,就可以完整的控制用户使用网站资源了。 会话状态维持是axAge()方法可以设置Cookie的生存时间。若生存时间为负值,代表浏览器关闭Cookie即消失。生存时间为0,代表删除Cookie,生存时间为正数,代表Cookie存在多少秒。可以用Cookie临时保存用户的账号和口令,JSP可随时读取,验证用户的合法性。可以将用户的浏览状态保存在Cookie中,下次用户再访问网页时,可由JSP向浏览器显示个性化页面。 3、转换Unicode编码 在许多JSP页面的调试过程中都碰到过许多由于汉字编码与Unicode编码转换引起的问题。经常遇到浏览器中看到的JSP页面中的汉字都是乱码、JSP页面无法正常显示GBK汉字、JSP不能接收Form提交的汉字、JSP数据库读写无法获得正确的内容等等问题。这是因为现在大部分具有国际化特征的软件核心字符处理都是以Unicode为基础的,在软件运行时根据当时Locale/Lang/Codepage设 置确定相应的本地字符编码设置,并依此处理本地字符,所以我们应该在处理过程中实现Unicode和本地字符集的相互转换,甚或以Unicode为中间的两个不同本地字符集的相互转换。这种方式在网络环境下被进一步延伸,任何网络两端的字符信息也需要根据字符集的设置转换成可接受的内容。 由于我的IE默认字符集为GB2312,然而WindoL页面送回给浏览器。ASP.DLL会针对每个请求产生一个独立的线程。 JSP由支持它的服务器上的JSP引擎负责解释执行。当服务器接收到一个对某JSP页面的请求时,如果这时对该页面创建或修改后的第一次请求,那么JSP引擎就把该JSP页面内容转变成一个纯Java的Servlet,然后将其编译成Servlet字节代码,这个Servlet可以调用其他的Servlet或JavaBeans,最后将Servlet的执行结果输出给浏览器。JSP页面被编译成Servlet之后,其执行代码以独立线程的方式一直存在于服务器的内存中。以后对该JSP页面提出请求时,不需要重新编译,除非该页面被修改。JavaServlet由于在服务器端运行,并且不包括会占用大量系统资源的GUI,因此运行的速度要比JavaApplet和Java独立应用程序快。 2、JSP的效率和安全性更高 ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,许多用ASP开发的网站,ASP程序全部被人下载去了,这样多网站的安全性产生了很大的危害。JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中;而且我们可以将Bean的JSP原程序删除,只剩下Class文件,网站照样可以运行。 3、JSP的组件方式更方便 ASP通过来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。 在维护方面,必须在服务器上注册,如果修改了程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JScat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。 另外JSP这种基于组件的模式很有效地提高了应用程序的开发效率,因为这种模式能够使开发人员利用快捷的子组件快速创建模板应用程序,然后再整合一些附加功能以后便可使用。像这样的由于Java语言的优势而产生的有效的方法在JSP中无处不在,并可将其打包成一个JavaBeans或一个EJB组件。 4、JSP的适应平台更广 ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+的组合来扩充,而且ActiveX对象必须事先放置于所选择的平台,Unix下的实现起来非常困难。 JSP则不同,几乎所有平台都支持Java,JSP+JavaBean可以在所有平台下通行无阻。NT下IIS通过一个插件,例如JRUN,就能支持JSP。著名的Web服务器Apache已经能够支持JSP。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论