还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Java andthe Internet
1.I.Jav.is.i.fact.ye.anothe.compute.programmin.language.yo.ma.questio.wh.i.i.s.importan.an.wh.i.i.bein.promote.a..revolutionar.ste.i.compute.programming.Th.answe.isn.immediatel.obviou.i.your.comin.fro-.traditiona.programmin.perspective.-alon.programmin.problems.i.i.als.importan.becaus.i.wil.soIv.programmin.problem.o.th.Worl.Wid.Web.
2.Client-side programmingTh.Web’.initia.server-browse.desig.provide.fo.interactiv.content.bu.th.interaowser.whic.woul.simpl.interpre.an.displa.them.Basi.HTM.contain.simpLmechanism.fo.dat.gathering.text-entrboxes.chec.boxes.radi.boxes.list.an.drop-dow.lists.a.wel.a..butto.tha.ca.onl.b.programme.t.rese.th.dat.o.th.for.o.“submit.th.dat.o.th.for.bac.t.th.server.Thi.submissio.passe.throug.th.Commo.Gatewa.Interfac.CGI.provide.o.al.We.servers.Th.tex.withi.th.submissio.tell.CG.wha.t.d.wit.it.Th.mos.commo.actio.i.t.ru..progra.locate.o.th.serve.i..director.that’.typicall.calle.T.som.degree.th.competito.t.Jav.i.Microsoft.ActiveX.althoug.i.take..completel.differen.approach.Active.wa.originalL.Windows-onl.solution.althoug.i.i.no.bein.develope.vi.a.independen.consortiu.t.becom.cross-platform.Effectively.Active.say.ai.you.progra.connect.t.it.environmen.jus.so.i.ca.b.droppe.int..We.pag.an.ru.unde..browse.tha.support.ActiveX..l.directl.support.Active.an.Netscap.doe.s.usin..plug-in..Thus.Active.doe.no.constrai.yo.t..particula.language.lf.fo.example.your.alread.a.experience.Window.programme.usin.Janguag.suc.a.C++.Visua.Basic.o.Borland.Delphi.yo.ca.creat.Active.component.wit.almos.n.change.t.you.programmin.knowledge.Active.als.provide..pat.fo.th.us.o.legac.cod.i.you.We.pages.
6.Securitygramming.Lyo.clic.o..We.site.yo.migh.automaticall.downloa.an.numbe.o.thing.aIon.wit.th.HTM.page.GLfiles.scrip.code.compile.Jav.code.an.Active.components.Som.o.thes.ar.benign.GLfile.can^.d.an.harm.an.scriptin.language.ar.generall.limite.i.wha.the.ca.do.Jav.wa.als.designe.t.ru.it.applet.withi..“sandbox.o.safety,whic.prevent.i.fro.writin.t.dis.o.accessin.memor.outsid.th.sandbox.Active.i.a.th.opposit.en.o.th.spectrum.Programmin.wit.Active.i.lik.programmi一n.Windowsyo.ca.d.anythin.yo.want.S.i.yo.clic.o..pag.tha.download.a.Active.component.tha.componen.migh.caus.damag.t.th.file.o.you.disk.O.course.program.tha.yo.loa.ont.you.compute.tha.ar.no.restricte.t.runnin.insid..We.browse.ca.d.th.sam.thing.Viruse.downloade.fro.Bulletin-Boar.System.BBSs.hav.lon.bee..problem.bu.th.spee.o.th.Interne.amplifie.th.difficulty.Th.solutio.seem.t.b.“digita.signatures,.whereb.cod.i.verifie.t.sho.wh.th.autho.is.Thi.i.base.o.th.ide.tha..viru.work.becaus.it.creato.ca.b.anonymous.s.i.yo.remov.th.anonymit.individual.wiLb.force.t.b.responsibLfo.thei.actions.Thi.seem.lik..goo.pla.becaus.i.allow.program.t.b.muc.mor.functional.an..suspec.i.wil.eliminat.maliciou.mischief.If.however..progra.ha.a.unintentiona.destructiv.bu.i.wil.stil.caus.problems.Th.Jav.approac.i.t.preven.thes.problem.fro.occurring.vi.th.sandbox.Th.Jav.inte上rprete.tha.live.o.you.loca.We rowse.examine,th.apple,fo.an.untowar.instruction.a.th.apple.i.bein.loaded.Lparticular.th.apple.canno.writ.file.t.dis.o.eras.file.on.o.th.mainstay.o.viruses.Applet.ar.generalLconsidere.t.b.safe.an.sine.thi.i.essentia.fo.reliabl.client/serve.systems.an.bug.i.th.Jav.languag.tha.allo.viruse.ar.rapidl.repaired.It.wort.notin.tha.th.browse.softwar.actuall.enforce.thes.securit.restrictions.an.som.browser.allo.yo.t.selec.differen.securit.level.t.provid.varyin.degree.o.acces.t.you.system.上Yo.migh.skeptica.o.thi.rathe.draconia.restrictio.agains.writinfle.t.you.loca.disk.Fo.example.yo.ma.wan.t.buiL.loca.databas.o.sav.dat.fo.late.us.offline.Th.initia.visio.seeme.tb.tha.eventuall.everyon.wouLge.onlin.t.d.anythin.important.bu.tha.wa.soo.see.t.b.impractica.althoug.low-cos.Interne.appliances.migh.someda.satisf.th.need.o..significan.segmen.o.users.Th.solutio.i.th..d.viciou.things.Jav.provide..framewor.fo.digita.signature.s.tha.yo.wil.eventuall.b.abl.t.allo.a.apple.t.ste.outsid.th.sandbo.i.necessary.Digita.signature.hav.misse.a.importan.issue.whic.i.th.spee.tha.peopl.mov.aroun.o.th.lnternet.l.yo.downloa..bugg.progra.an.i.doe.somethin.untoward.ho.lon.wil.i.b.befor.yo.discove.th.damage.l.coul.b.day.o.eve.weeks.B.then.ho.wil.yo.trac.dow.th.progra.that.don.it.An.wha.goo.wil.i.d.yo.a.tha.point
7.1nterne.vs.intranetTh.We.i.th.mos.genera.solutio.t.th.client/serve.problem.s.i.make.sens.tha.yo.ca.us.th.sam.technolog.t.solv..subse.o.th.problem.i.particula.th.classi.client/serve.proble.withi..company.Wit.traditiona.client/serve.approache.yo.hav.th.proble.o.multipl.type.o.clien.computers.a.wel.a.th.difficult.o.installin.ne.clien.software.bot.O.whic.ar.handil.solve.wit.\\^browser.an.client-sid.programming.Whe.We.technolog.i.use.fo.a.informatio.networ.tha.i.restricte.t..particula.company.i.i.referre.t.a.a.intranet.Intranet.provid.muc.greate.securit.tha.th.Intemet.sinc.yo.ca.physicall.contro.acces.t.th.server.withi.you.company.Lterm.o.training.i.seem.tha.onc.peopLunderstan.th.genera.concep.o..browse.it.muc.easie.fo.the.t.dea.wit.difference.i.th.wa.page.an.applet.look.s.th.learnin.curv.fo.ne.kind.o.system.seem.t.b.reduce d.Th.securit.proble.bring.u.t.on.o.th.division.tha.seem.t.b.automaticalLformin.i.th.worLo.client-sid.programming.Lyou.progra.i.runnin.o.thlnternet.yo.don.kno.wha.platfor.i.wil.b.workin.under.an.yo.wan.t.b.extr.carefu.tha.yo.don.disseminat.bugg.code.Yo.nee.somethin.cross-platfor.an.secure.lik..scriptin.languag.o.Java.,Lyour.runnin.o.a.intranet.yo.migh.hav..differen.se.o.constraints.It,.no.uncommo.tha.you.machine.coul.al.b.IntelAVindow.platforms.O.a.intranet.you r.responsibl.fo.th.qualit.o.you.ow.cod.an.ca.repai.bug.whe.they r,discovered.Laddition.yo.migh.alread.hav..bod.o.legac.cod.tha.you上ase.rathe.tha.tryin.t.recod.you.program.i..ne.language.Whe.face.wit.thi.bewilderin.arra.o.solution.t.th.client-sid.programmin.problem.th.bes.pla.o.attac.i..cost-benefi.analysis.Conside.th.constraint.o.you.proble.an.wha.woul.b.th.shortes.pat.t.you.solution.Sinc.client-.alway..goo.ide.t.tak.th.fastes.developmen.approac.fo.you.particula.situation.Thi.i.a.aggressiv.stanc.t.prepar.fo.inevitabl.encounter.wit.th.problem.o.progra.development.
8.Server-side programmingThi.whol.discussio.ha.ignore.th.issu.o.server-sid.programming.Wha.happen.whe.yo.mak..reques.o..server.Mos.o.th.tim.th.reques.i.simpl.aer.an.CG.scripts.bu.mor.sophisticate.system.hav.bee.appearing.Thes.includ.Java-base.We.server.tha.allo.yo.t.perfor.al.you.server-sid.programmin.i.Jav.b.writin.wha.ar.calle.servlets.Servlet.an.thei.offspring.JSPs.ar.tw.o.th.mos.compellin.reason.tha.companie.wh.develo.We.site.ar.movin.t.Java.especiall.becaus.the.eliminat.th.problem.o.dealin.wit.differentl.able.browsers.Muc.o.th.brouhah.ove.Jav.ha.bee.ove.applets.Jav.i.actualL.general-purpos.pro一grammin.languag.tha.ca.solv.an.typ.o.problema.leas.i.theory.An.a.pointe.ou.previously.ther.migh.b.mor.effectiv.way.t.solv.mos.client/serve.problems.Whe.yo.mov.ou.o.th.apple.aren.an.simultaneousl.releas.th.restrictions.sue.a.th.on.agains.writin.t.disk.yo.ente.th.worl.o.general-purpos.application.tha.ru.standalone.withou..We.browser.jus.lik.an.ordinar.progra.does.Here.Java’..portability,.programmability.A.you Lse.throughou.thi.book.Jav.ha.man.feature.tha.allo.yo.t.creat.robus.program.i..shorte.perio.tha.wit.previou.programmin.languages.一JD.
1.
3.i.particular.introduce.th.so-calle.activ.fo.solvin.large.set.o.problems.Java和因特网既然不过另一种类型的程序设计语言,大家可能会奇怪Java它为什么值得如此重视,为什么还有这么多的人认为它是计算机程序设计的一个里程碑呢?如果您来自一个传统的程序设计背景,那么答案在刚开始的时候并不是很明显除了Java可解决传统的程序设计问题以外,还能解决World Wide(万维网)上的编程问题Web
1.客户端编程最初采用的“服务器一浏览器”方案可提供交互式Web内容,但这种交互能力完全由服务器提供,为服务器和因特网带来了不小的负担服务器一般为客户浏览器产生静态网页,由后者简单地解释并显示出来基本语言提供了简单的HTML数据收集机制文字输入框、复选框、单选钮、列表以及下拉列表等,另外还有一个按钮,只能由程序规定重新设置表单中的数据,以便回传给服务器用户提交的信息通过所有Web服务器均能支持的()“通用网关接口”回传到服务器包含在提交数据CGI中的文字指示该如何操作最常见的行动是运行位于服CGI务器的一个程序那个程序一般保存在一个名为・的目录中(按下页内的一个按钮时,请“cgi bin”Web・注意一下浏览器顶部的地址窗,经常都能发现的字cgi bin”样)大多数语言都可用来编制这些程序,但其中最常见的是这是由于是专为文字的处理及解释而设计的,所PerL Perl以能在任何服务器上安装和使用,无论采用的处理器或操作系统是什么cgi-bin..Lyo.watc.th.addres.windo.a.th.to.o.you.browse.whe.yo.pus..butto.o...“cgi-bin.withi.al.th.gobbledygoo.there..Thes.program.ca.b.writte.i.mos.languages.Per.i..commo.choic.becaus.i.i.designe.fo.tex.manipulatio.an.i.interpreted.s.i.ca.b.installe.o.an.serve.regardles.o.processo.o.operatin.system.Man.powerfu.We.site.toda.ar.buil.strictl.o.CGLan.yo.ca.i.fac.d.nearl.anythin.wit.it.However.We.site.buil.o.CG.program.ca.rapidl.becom.overl.complicate.t.maintain.an.ther.i.als.th.proble.o.respons.time.Th.respons.o..CG.progra.depend.o.ho.muc.dat.mus.b.sent.a.wel.a.th.loa.o.bot.th.serve.an.th.Internet.O.to.o.this.startin..CG.progra.tend.t.b.slow..Th.initia.designer.o.th.We.di.no.forese.ho.rapidl.thi.bandwidt.woul.b.exhauste.fo.th.kind.o.application.peopl.developed.Fo.example.an.sor.o.dynami.graphin.i.nearLimpossibLt.perfor.wit.consistenc.becaus..GLfil.mus.b.create.an.move.fro.th.serve.t.th.clien.fo.eac.versio.o.th.graph.An.you v.n.doub.ha.direc.experienc.wit.somethin.a.simpl.a.validatin.th.dat.o.a.inpu.form.Yo.pres.th.submi.butto.o..page.th.dat.i.shippe.bac.t.th.server.th.serve.start..CG.progra.tha.discover.a.error.format.a.HTM.pag.informin.yo.o.th.error.an.the.send.th.pag.bac.t.you.yo.mus.the.bac.u...inelegant.Th.solutio.i.client-sid.programming.Mos.machine.tha.ru.We.browser.ar.powerfu.engine.capabl.o.doin.vas.work.an.wit.th.origina.stati.HTM.approac.the.ar.sittin.there.jus.idl.waitin.fo.th.serve.t.dis.u.th.nex.page.Client-sid.programmin.mean.tha.th.We.browse.i.harnesse.t.d.whateve.wor.i.can.an.th.resul.fo.th.use.i..muc.speedie.an.mor.interactiv.experienc.a.you.We.site.
2.插件朝客户端编程迈进的时候,最重要的一个问题就是插件的设计利用插件,程序员可以方便地为浏览器添加新功能,用户只需下载一些代码,把它们“插入”浏览器的适当位置即可这些代码的作用是告诉浏览器“从现在开始,你可以进行这些新活动了”(仅需下载这些插入一次)有些快速和功能强大的行为是通过插件添加到浏览器的但插件的编写并不是一件简单的任务在我们构建一个特定的站点时,可能并不希望涉及这方面的工作对客户端程序设计来说,插件的价值在于它允许专业程序员设计出一种新的语言,并将那种语言添加到浏览器,同时不必经过浏览器原创者的许可由此可以看出,插件实际是浏览器的一个“后门”,允许创建新的客户端程序设计语言(尽管并非所有语言都是作为插件实现的.脚本编制语言3插件造成了脚本编制语言的爆炸性增长通过这种脚本语言,可将用于自己客户端程序的源码直接插入页,而对那种语言进行解释的插件HTML会在页显示的时候自动激活脚本语言一般都倾向于尽量简化,易于理HTML解而且由于它们是从属于页的一些简单正文,所以只需向服务器发出HTML对那个页的一次请求,即可非常快地载入缺点是我们的代码全部暴露在人们面前另一方面,由于通常不用脚本编制语言做过分复杂的事情,所以这个问题暂且可以放在一边脚本语言真正面向的是特定类型问题的解决,其中主要涉及如何创建更丰富、更具有互动能力的图形用户界面()然而,脚本语言也许能解决客GUI户端编程中的问题你碰到的问题可能完全就在那里面而且由于脚80%80%本编制语言的宗旨是尽可能地简化与快速,所以在考虑其他更复杂的方案之前(如及)首先应想一下脚本语言是否可行Java ActiveX,目前讨论得最多的脚本编制语言包括(它与JavaScript没有任何关系;之所以叫那个名字,完全是一种市Java场策略)、(同很相似)以及VBScript Visual Basic(来源于流行的跨平台构造语言)当然还有其Tcl/Tk GUI他许多语言,也有许多正在开发中也许是日常用的,它得到的支持也最全面JavaScript无论NetscapeNavigator,Microsoft Internet还是目前都提供了对的支持Explorer,Opera,JavaScript除此以外,市面上讲述的书籍也要比讲述其他语JavaScript言的书多得多有些工具还能利用自动产生网页当然,如果你已经有JavaScript Visual或者的深厚功底,当然用它们要简单得多,Basic Tcl/Tk起码可以避免学习新语言的烦恼(解决方面的问题就已Web经够让人头痛了)
4.Java如果说一种脚本编制语言能解决的客户端程序设计问题,那么剩下的80%又该怎么办呢?它们属于一些高难度的问题吗?目前最流行的方案就是20%它不仅是一种功能强大、高度安全、可以跨平台使用以及国际通用的程序Javao设计语言,也是一种具有旺盛生命力的语言对的扩Java展是不断进行的,提供的语言特性和库能够很好地解决传统语言不能解决的问题,比如多线程操作、数据库访问、连网程序设计以及分布式计算等等Java通过“程序片()巧妙地解决了客户端编程的问题Applet程序片(或“小应用程序”)是一种非常小的程序,只能在浏览器中Web运行作为页的一部分,程序片代码会自动下载回来(这和网页中的图Web片差不多)激活程序片后,它会执行一个程序程序片的一个优点体现在通过程序片,一旦用户需要客户软件,软件就可从服务器自动下载回来它们能自动取得客户软件的最新版本,不会出错,也没有重新安装的麻烦由于Java的设计原理,程序员只需要创建程序的一个版本,那个程序能在几乎所有计算机以及安装了解释器的浏览器中运行由于是一种全功能的编程语Java Java言,所以在向服务器发出一个请求之前,我们能先在客户端做完尽可能多的工作例如,再也不必通过因特网传送一个请求表单,再由服务器确定其中是否存在一个拼写或者其他参数错误大多数数据校验工作均可在客户端完成,没有必要坐在计算机前面焦急地等待服务器的响应这样一来,不仅速度和响应的灵敏度得到了极大的提高,对网络和服务器造成的负担也可以明显减轻,这对保障因特网的畅通是至关重要的与脚本程序相比,程序片的另一个优点是它采用编译好的形式,所以Java客户端看不到源码当然在另一方面,反编译程序片也并不是件难事,而Java且代码的隐藏一般并不是个重要的问题大家要注意另外两个重要的问题正如本书以前会讲到的那样,编译好的程序片可能包含了许多模块,所以要Java多次“命中”(访问)服务器以便下载(在中,这个问题得到了有效Java
1.1的改善一一利用压缩档,即文件一一它允许设计者将所有必要的模Java JAR块都封装到一起,供用户统一下载)在另一方面,脚本程序是作为页Web正文的一部分集成到页内的这种程序一般都非常小,可有效减少对服务Web器的点击数另一个因素是学习方面的问题不管你平时听别人怎么说,Java都不是一种十分容易便可学会的语言如果你以前是一名程序员,Visual Basic那么转向会是一种最快捷的方案由于可以解决大多数典VBScript VBScript型的客户机/服务器问题,所以一旦上手,就很难下定决心再去学习如Java果对脚本编制语言比较熟,那么在转向之前,建议先熟悉一下Java JavaScript或者因为它们可能已经能够满足你的需要,不必经历学习的艰VBScript,Java苦过程
5.ActiveX在某种程度上,的一个有力竞争对手应该是微软的Java尽管它采用的是完全不同的一套实现机制ActiveX,最早是一种纯的方案经过一家独立的ActiveX Windows专业协会的努力,现在已具备了跨平台使用的能力ActiveX实际上,的意思是“假如你的程序同它的工作环境正ActiveX常连接,它就能进入页,并在支持持,而Web Netscape化了对的支的浏览器中运行”ActiveXActiveX IE需要一个插件所以,并没有ActiveX限制我们使用一种特定的语言比如,假设我们已经是一名有经验的程序员,能熟练地使用像、Windows C++或者刃样的语言,就能几VisualBasicBorland DelphiB乎不加任何学习地创建出组件事实上,ActiveX是在我们的页中使用“历史遗留”代码的ActiveX Web最佳途径.安全6自动下载和通过因特网运行程序听起来就像是一个病毒制造者的梦想在客户端的编程中,带来了最让人头痛的安全问题点击一个ActiveX站点的时候,可能会随同网页传回任何数量的东西文件、脚Web HTMLGIF本代码、编译好的代码以及组件有些是无害的;文件不会Java ActiveXGIF对我们造成任何危害,而脚本编制语言通常在自己可做的事情上有着很大的限制也设计成在一个安全“沙箱”里在它的程序片中运行,这样可防止操Java作位于沙箱以外的磁盘或者内存区域是所有这些里面最让人担心的用编写程序就像编制ActiveX ActiveXWindows应用程序--------可以做自己想做的任何事情下载回一个ActiveX组件后,它完全可能对我们磁盘上的文件造成破坏当然,对那些下载回来并不限于在浏览器内部运行的程序,它们同样也可能破坏我们的系统从Web下载回来的病毒一直是个大问题,但因特网的速度使得这个问题变得更加BBS复杂目前解决的办法是“数字签名”,代码会得到权威机构的验证,显示出它的作者是谁这一机制的基础是认为病毒之所以会传播,是由于它的编制者匿名的缘故所以假如去掉了匿名的因素,所有设计者都不得不为它们的行为负责这似乎是一个很好的主意,因为它使程序显得更加正规但我对它能消除恶意因素持怀疑态度,因为假如一个程序便含有那么同样会造成问题Bug,通过“沙箱”来防止这些问题的发生解释器内嵌于我们本地的Java Java浏览器中,在程序片装载时会检查所有有嫌疑的指令特别地,程序片根Web本没有权力将文件写进磁盘,或者删除文件(这是病毒最喜欢做的事情之一)我们通常认为程序片是安全的而且由于安全对于营建一套可靠的客户机/服务器系统至关重要,所以会给病毒留下漏洞的所有错误都能很快得到修复(浏览器软件实际需要强行遵守这些安全规则;而有些浏览器则允许我们选择不同的安全级别,防止对系统不同程度的访问)大家或许会怀疑这种限制是否会妨碍我们将文件写到本地磁盘比如,我们有时需要构建一个本地数据库,或将数据保存下来,以便日后离线使用最早的版本似乎每个人都能在线做任何敏感的事情,但这很快就变得非常不现实(尽管低价“互联网工具”有一天可能会满足大多数用户的需要)解决的方案是“签了名的程序片”,它用公共密钥加密算法验证程序片确实来自它所声称的地方当然在通过验证后,签了名的一个程序片仍然可以开始清除你的磁盘但从理论上说,既然现在能够找到创建人“算帐”,他们一般不会干这种蠢事为数字签名提供了一个框架,在必要时,可让Java
1.1一个程序片“走”到沙箱的外面来数字签名遗漏了一个重要的问题,那就是人们在因特网上移动的速度如下载回一个错误百出的程序,而它很不幸地真的干了某些蠢事,需要多久的时间才能发觉这一点呢?这也许是几天,也可能几周之后发现了之后,又如何追踪当初肇事的程序呢(以及它当时的责任有多大)?.因特网和内联网7是解决客户机/服务器问题的一种常用方案,所以最好能用相同的技Web术解决此类问题的一些“子集”,特别是公司内部的传统客户机/服务器问题对于传统的客户机/服务器模式,我们面临的问题是拥有多种不同类型的客户计算机,而且很难安装新的客户软件但通过浏览器和客户端编程,这Web两类问题都可得到很好的解决若一个信息网络局限于一家特定的公司,那么在将技术应用于它之后,即可称其为“内联网”()以示与国际Web Intranet,性的“因特网”()有别内联网提供了比因特网更高的安全级别,因Internet为可以物理性地控制对公司内部服务器的使用说到培训,一般只要人们理解了浏览器的常规概念,就可以非常轻松地掌握网页和程序片之间的差异,所以学习新型系统的开销会大幅度减少安全问题将我们引入客户端编程领域一个似乎是自动形成的分支若程序是在因特网上运行,由于无从知晓它会在什么平台上运行,所以编程时要特别留意,防范可能出现的编程错误需作一些跨平台处理,以及适当的安全防范,比如采用某种脚本语言或者Java但假如在内联网中运行,面临的一些制约因素就会发生变化全部机器均为平台是件很平常的Intel/Windows事情在内联网中,需要对自己代码的质量负责而且一旦发现错误,就可以马上改正除此以外,可能已经有了一些“历史遗留”的代码,并用较传统的客户机要物理性地安装一道客户程序浪费在升级安装上的时间是转移到浏览器的一项重要原因使用了浏览器后,升级就变得易如反掌,而且整个过程是透明和自动进行的如果真的是牵涉到这样的一个内联网中,最明智的方法是采用而非试图采用ActiveX,/服务器方式使用那些代石但在进行升级时,每次都一种新的语言来改写程序代码面临客户端编程问题令人困惑的一系列解决方案时,最好的方案是先做一次投资/回报分析请总结出问题的全部制约因素,以及什么才是最快的方案由于客户端程序设计仍然要编程,所以无论如何都该针对自己的特定情况采取最好的开发途径这是准备面对程序开发中一些不可避免的问题时,我们可以做出的最佳姿态服务器端编程8我们的整个讨论都忽略了服务器端编程的问题如果向服务器发出一个请求,会发生什么事情?大多数时候的请求都是很简单的一个“把这个文件发给我浏览器随后会按适当的形式解释这个文件作为页、一幅图、HTML一个程序片、一个脚本程序等等向服务器发出的较复杂的请求通常涉Java及到对一个数据库进行操作(事务处理)其中最常见的就是发出一个数据库检索命令,得到结果后,服务器会把它格式化成页,并作为结果传回HTML来(当然,假如客户通过或者某种脚本语言具有了更高的智能,那么原Java始数据就能在客户端发送和格式化;这样做速度可以更快,也能减轻服务器的负担)另外,有时需要在数据库中注册自己的名字(比如加入一个组时),或者向服务器发出一份订单,这就涉及到对那个数据库的修改这类服务器请求必须通过服务器端的一些代码进行,我们称其为“服务器端的编程”在传统意义上,服务器端编程是用和脚本进行的,但更复杂的系统已经Perl CGI出现其中包括基于的服务器,它允许我们用进行所有服务器Java WebJava端编程,写出的程序就叫做“小服务程序”()Servlet.一个独立的领域应用程序9与有关的大多数争论都是与程序片有关的实际是一种常规用Java Java途的程序设计语言,可解决任何类型的问题,至少理论上如此而且正如前面指出的,可以用更有效的方式来解决大多数客户机/服务器问题如果将视线从程序片身上转开(同时放宽一些限制,比如禁止写盘等),就进入了常规用途的应用程序的广阔领域这种应用程序可独立运行,毋需浏览器,就象普通的执行程序那样在这儿,的特色并不仅仅反应在它的移植能力,也反映在Java编程本身上就像贯穿全书都会讲到的那样,提供了许多有用的特性,使我Java们能在较短的时间里创建出比用从前的程序设计语言更健壮的程序但要注意任何东西都不是十全十美的,我们为此也要付出一些代价其中最明显的是执行速度放慢了(尽管可对此进行多方面的调整)和任何语言一样,本身也存在一些限制,使得它不十分适合解决某些特殊的编程问题但Java不管怎样,都是一种正在快速发展的语言随着每个新版本的发布,它变得Java越来越可爱,能充分解决的问题也变得越来越多Th.proble.wit.discussion.o.client-sid.programmin.i.tha.the.aren.ver.differen.fro.discussion.o.programmin.i.general.Th.parameter.ar.almos.th.same.bu.th.platfor.i.different..We.browse.i.lik..limite.operatin.system.I.th.end.yo.mus.stil.program.an.thi.account.fo.th.dizzyin.arra.o.problem.an.solution.produce.b.client-sid.programming.Th.res.o.thi.sectio.provide.a.overvie.o.th.issue.an.approache.i.client-sid.programming.
2.Plug-insOn.o.th.mos.significan.step.forwar.i.client-sid.programmin.i.th.developmen.o.th.plug-in.Thi.i..wa.fo..programme.t.ad.ne.functionalit.t.th.browse.b.downloadin..piec.o.cod.tha.plug.itsel.int.th.appropriat.spo.i.th.browser.l.tell.th.browse.^fro.no.o.yo.ca.perfor.thi.ne.activity..Yo.nee.t.downloa.th.plug-i.onl.once..Som.fas.an.powerfu.behavio.i.adde.t.browser.vi.plug-ins.bu.writin..plug-i.i.no..trivia.task.an.isn.somethin.you.wan.t.d.a.par.o.th.proces.o.buildin..particula.site.Th.valu.o.th.plug-i.fo.client-sid.programmin.i.tha.i.allow.a.exper.programme.t.develo..ne.languag.an.ad.tha.languag.t..browse.withou.th.permissio.o.th.browse.manufacturer.Thus.plug-in.provid..^bac.door.tha.allow.th.creatio.o.ne.client-sid.programmin.Ianguage.althoug.no.al.language.ar.implemente.a.plug-ins.
3.Scripting languagesPlug-in.resulte.i.a.explosio.o.scriptin.languages.Wit..scriptin.languag.yo.embe.th.sourc.cod.fo.you.client-sid.progra.directl.int.th.HTM.page.an.th.plug-i.tha.interpret.tha.languag.i.automaticall.activate.whiLth.HTM.pag.i.bein.displayed.Seriptin.language.ten.t.b.reasonabl.eas.t.understan.and.becaus.the.ar.simpl.tex.tha.i.par.o.a.HTM.page.the.loa.ver.quickl.a.par.o.th.singl.serve.hi.require.t.procur.tha.page.Th.trade-of.i.tha.you.cod.i.expose.fo.everyon.t.se.an.steal.Generally.however.yo.aren.doin.amazingl.sophisticate.thing.wit.scriptin.language.s.thi.i.no.to.mue.o..hardship.Thi.point.ou.tha.th.scriptin.language.use.insid.We.browser.ar.reall.intende.t.soIv.specifi.type.o.problems.primaril.th.creatio.o.riche.an.mor.interactiv.graphica.use.interface.GUIs.However..scriptin.languag.migh.solv.
8.percen.o.th.problem.encountere.i.client-sid.programming.You.problem.migh.ver.weLfi.completeLwithi.tha.
8.percent.an.sine.scriptin.language.ca.allo.easie.an.faste.development.yo.shoul.probabl.conside..scriptin.languag.befor.lookin.a..mor.involve.solutio.sue.a.Jav.o.Active.programming.Th.mos.commonl.discusse.browse.scriptin.language.ar.JavaScrip.whic.ha.nothin.Ld.wit.Java.it.name.tha.wa.jus.t.gra.som.o.Java.marketin.momentum.VBScrip.whic.look.lik.Visua.Basic.an.Tcl/Tk.whic.come.fro.th.popula.cross-platfor.GUI-buildin.language.Ther.ar.other.ou.there.an.n.doub.mor.i.development.JavaScrip.i.probabl.th.mos.commonl.supported.l.come.buil.int.bot.Netscap.Navigato.an.th.Microsof.lnterne.Explore.IE.l.addition.ther.ar.probabl.mor.JavaScrip.book.availabl.tha.ther.ar.fo.th.othe.browse.languages.an.som.tool.automaticall.creat.page.usin.JavaScript.However.i.your.alread.fluen.i.Visua.Basi.o.Tcl/Tk.youl.b.mor.productiv.usin.thos.scriptin.language.rathe.tha.learnin..ne.one.Youl.hav.you.hand.ful.dealin.wit.th.We.issue.already..
4.JavaI..scriptin.languag.ca.solv.
8.percen.o.th.client-sid.programmin.problems.wha.一abou.th.othe.
2.percent th.“reall.har.stuff.Th.mos.popula.solutio.toda.i.Java.No.onLi.i..powerfu.programmin.languag.buiLt.b.secure.cross-platform.an.internationaLbuJav.i.bein.continuall.extende.t.provid.languag.feature.an.librarie.tha.elegantl.handl.problem.tha.ar.difficul.i.traditiona.programmin.languages.sue.a.multithreading.databas.access.networ.programming.an.distribute.computing.Jav.allow.client-sid.programmin.vi.th.applet.一d.Whe.th.apple.i.activated.execute..program.Thi.i.par.o.it.beautyi.provide.yo.wit..wa.t.automaticall.distribut.th.clien.softwar.fro.th.serve.a.th.tim.th.use.need.th.clien.software.an.n.sooner.Th.use.get.th.lates.versio.o.th.clien.softwar.withou.fai.an.withou.difficul.reinstallation.Becaus.o.th.wa.Jav.i.designed.th.programme.need.t.creat.onL.singl.program.an.tha.progra.automaticall.work.wit.al.computer.tha.hav.browser.wit.built-i.Jav.interpreters.Thi.safel.include.th.vas.majorit.o.machines..Sinc.Jav.i..full-fledge.programmin.language.yo.ca.d.a.muc.wor.a.possibl.o.th.clien.befor.an.afte.makin.request.o.th.server.Fo.example.yo.won.nee.t.sen..reques.for.acros.th.Interne.t.discove.tha.you v.gotte..dat.o.som.othe.paramete.wrong.an.you.clien.compute.ca.quickl.d.th.wor.o.plottin.dat.instea.o.waitin.fo.th.serve.t.mak..plo.an.shi..graphi.imag.bac.t.you.No.onl.d.yo.ge.th.immediat.wi.o.spee.an.responsiveness.bu.th.genera.networ.traffi.an.loa.o.server.ca.b.reduced.preventin.th.entir.Interne.fro.slowin.down.On.advantag..Jav.apple.ha.ove..scripte.progra.i.tha・it.i.compile.form.s.th.sourc.cod.isn.availabl.t.th.client.O.th.othe.hand.Jav.apple.ca.b.decompile.withou.to.muc.trouble.bu.hidin.you.cod.i.ofte.no.a.importan.issue.Tw.othe.factor.ca.b.important.A.yo.wil.se.late.i.thi.book..compile.Jav.apple.ca.compris.man.module.an.tak.multipl.serve.ica.client/serve.problem.yo.migh.b.har.presse.t.justif.learnin.Java.I.your.experience.wit..
5.ActiveX。