JAVA自作QQ屏幕截图工具_第1页
JAVA自作QQ屏幕截图工具_第2页
JAVA自作QQ屏幕截图工具_第3页
JAVA自作QQ屏幕截图工具_第4页
JAVA自作QQ屏幕截图工具_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

JAVA自作QQ屏幕截图工具摘要捕捉图像方式灵活,主要可以捕捉整个屏幕、活动窗口、选定区域、固定区域、选定控件、选定菜单等,图像输出方式多样,主要包括文件、剪贴板、画图。软件具有捕捉光标、设置捕捉前延时、显示屏幕放大镜、自定义捕捉热键、图像文件自动按时间或模板命名捕捉到的图像能够以保存图像文件、复制到剪贴板、等多种方式输出。图像文件自动命名功能,能够对捕捉到的图片进行自动命名保存,可以设置根据时间或文件名模板自动保存。捕捉图像预览功能,在捕捉完成后,显示预览窗口。图像保存目录及格式设置功能,可以为捕捉的图像规定默认保存位置及图像格式,图像格式包括BMP、GIF、JPG、PNG、TIF等。捕捉层叠菜单功能,在选定菜单捕捉时可以设置是否捕捉层叠(级联)菜单。可以截取多个图片,分多层界面显示已截图片。关键词:截图;保存;复制到剪切板;IJAVAsinceQQscreenshotstoolsAbstractCapturetheimageflexibly,andthemaincancapturethewholescreen,theactivewindow,theselectedregion,fixedarea,theselectedcontrol,selectmenu,imageoutputwaydiverse,mainlyincludingdocuments,clipboard,drawing.Softwareistocapturethecursor,setthedelaybeforecapture,displayscreenmagnifier,customcapturehotkey,automaticimagefileontimeortemplatename.Capturetheimagetosavetheimagefile,copiedtotheclipboard,avarietyofways,suchastheoutput.Imagefilenamedfunctionautomatically,tobeabletocapturetheimageautomaticallynamedsave,canbesetaccordingtotimeortemplateautomaticallysavedinthefilename.Capturetheimagepreviewfunction,aftercompletionofthecapture,displaythepreviewwindow.Imagesavedirectoryandformatsettingfunction,canbepreservedtocaptureimagesoftheprovisionsofthedefaultlocationandimageformat,imageformat,includingBMP,GIF,JPG,PNG,TIF,etc.Whencapturetocapturethecascadingmenufunction,theselectedmenuyoucansetwhethertocapturethecascadingmenu(cascade).Cancapturemultipleimages,multi-layerinterfacehassectionalimagedisplay.Keywords:capture;Save;Copiedtotheclipboard;目录1.引言.22可行性分析及开发环境的选择.32.1可行性分析.32.1.1.技术可行性.32.1.2经济可行性.32.2运行环境的选择.32.3开发工具的选择.32.4B/S模式.43.系统需求分析.73.1性能需求.73.2E-R图设计.74.系统设计.94.1本系统的设计目标.94.2系统功能整体设计.95.系统设计实现.105.1系统主界面实现.105.2系统截图实现.126.参考文献.257.致谢.3811.引言随着计算机技术的高速发展,特别是计算机网络技术与数据库技术的发展,使得人们的生活与工作方式发生了极大的改观。伴随着计算机互联网技术的高速发展,数字化的时代已经正式的走进了我们的学习、生活和工作中,也大幅度的改善和丰富了人们的文化生活,提高了人们的生活质量,互联网技术和数据库技术的完美结合给人们的生活带来了巨大且客观的影响。高效率工作已然成为社会主题,很多时候,截图软件可以帮助我们提高很多工作效率和生活节奏。截图软件可以帮助我们截图,保存,复制等功能,完善生活和工作的需要,工作中需要图片粘贴,书写文档等。生活中我们可以通过截图软件分享图片和解决问题等。22可行性分析及开发环境的选择2.1可行性分析可行性研究是在对一种调查鉴定项目的早期发展,调查研究的综合,提出的项目,目的是确定项目是否可行。信息系统技术的可行性,从系统开发的计划开始的研究,论述了系统的开发和示范的强度的可行性,各种系统采用的技术手段是否可以实现。经济可行性的信息系统主要是对项目的经济评价,可行性建设投资体制和效益评估系统的运行带来的组织分析。如果信息系统的可行性研究工作提供的方案可以从人力,资源,组织,确保项目顺利实施完成,而且在经济项目的开发,技术和环境可以保证系统的正常运行。由于系统建设是一项投资大,涉及范围广,复杂的系统工程,因此要充分论证其可行性,以确保投资是准确的,而信息系统的建设是一个完整的作品,必须站在系统的角度论证了其可行性是令人信服的,才有意义。可行性研究的目的是用最小的代价,在尽可能确定问题是否可以在短时间内解决,其目的不是解决问题,而是确定问题是否值得解决,从以下两个方面考虑可行性。2.1.1.技术可行性截图截图系统则主要采用B/S结构、JAVA语言及Internet网络技术等。这些都是现在主流技术,我们可以轻易找到符合要求的工具。所以,从技术上来说,开发这个系统的技术难题是不太多,且对于使用者来说,易于操作和维护。2.1.2经济可行性从我搜集的一些资料来看,屏幕截图系统对计算机硬件没有特殊要求,而我们是自行开发的系统,成本可以忽略不计,还有后期维护的费用也相对比较低廉。综上所述,从技术上、经济上都是可行的,而且要求不高,所以该系统的开发是可行的。2.2运行环境的选择由于本系统对运行环境没有过高的要求,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。服务器端在Windows2000、XP或Window7下安装使用,操作简洁、维护方便,用户易操作。客户端可以在Windows98及以上版本运行使用即可。因为本系统是小型系统,只需要一台PC机即可,软件使用的是免费软件,成本比较低。用户只需要登录系统就可以完成它的功能。2.3开发工具的选择Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性:面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以被看作是对象。世界中任何实体都可归类于某类事物,任何对象都是某一类事物的实例。对象之间通过消息进行相互作用。平台无关性。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈和寄存器组等。但JVM通常是在软件上而不是在硬件上实现。JVM是Java平台无关的基础,从而确保了Java的平台无关性。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要能够配备了Java解释器,就可以运行自己编写的3程序,而不管这种字节码是在何种平台上生成的。可靠性和安全性。Java是源于C+,但它去除了许多C+不可靠因素,可以防止许多编程出现的错误。Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠。Java解释器运行时实施检查,可以发现数组和字符串访问的越界。Java不支持指针,这杜绝了内存的非法访问。Java的自动单元收集防止了内存丢失等动态内存分配导致的问题。多线程。线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。C和C+采用单线程体系结构,而Java却提供了多线程支持6。2.4B/S模式B/S即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。B/S结构的主要特点是分布性较强、维护的方便、开发简单且共享性强、总体拥有成本低。在这样结构下,主要是利用不断成熟的WWW浏览器技术,结合很多浏览器的多种Script语言和ActiveX技术,用户的界面完全是通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,用通用浏览器就实现了原来需要复杂专用软件才能实现了更强大功能,并节约了大量开发成本,是一种全新的软件系统构造技术。显然B/S结构应用程序相对于传统的C/S结构应用程序是巨大的进步。在这种结构下,用户工作界面是通过IE游览器来实现的。随着Internet和WWW的流行,从前的主机终端和CS都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了BS型模式,即浏览器服务器结构。B/S模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,这些信息都是由许许多多的Web服务器产生的,在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。B/S结构的优点:具有分布性特点,可以随时随地进行查询、浏览等业务处理。业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只需要改变网页,即可实现所有用户的同步更新。开发简单,共享性强。B/S结构的缺点:个性化特点明显的降低,无法实现具有个性化的功能要求。操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。页面动态刷新,响应速度明显降低。无法实现分页显示,给数据库访问造成较大的压力。功能弱化,难以实现传统模式下的特殊功能要求。B/S架构软件的优势与劣势:维护和升级的方式比较简单。目前,软件系统的改进和升级越来越频繁,C/S系统的各部分模块中有某一部分改变,就要关联到其它模块的变动,从而使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作几乎都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明4显,所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。系统的性能。在系统的性能方面,B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的或者说不擅长的.与操作系统平台关系最小。采用C/S结构时,客户端以及服务器端都能够处理相应的任务,即使对客户机要求比较高,但也正因为这样可以减轻服务器的压力。由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。系统的开发。C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这使得应用程序的维护、移植和互操作变得复杂。从技术成熟度和软件设计、开发人员的掌握情况来看,C/S技术应是更成熟、更可靠的。其实,无论是B/S还是C/S,他们都不新鲜。C/S(Clientrver,客户端/服务器)技术从上世纪90年代初出现至今已经非常的成熟,目前广泛被大量的应用,它的结构经历了二层C/S、三层C/S的更迭。B/S(Browserrver,浏览器/服务器)技术则是随着Internet的通用而来的。有必要说明的是,B/S最早不被称为“B/S”,此类应用国外通常叫Web应用,是国内一些公司“创造”了“B/S”这个词。应该说,B/S和C/S都有自己的好处,他们都是现代极其重要的运算架构。在适当的Internet、维持工作量等方面,B/S比C/S要强得多;但在运行的速度、数据的安全、人机的交互等很多方面,B/S远比不上C/S。从中可以发现,凡是C/S的强项,便是B/S的弱项。而B/S结构软件则不同,所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。B/S浏览器的技术决定了操作的体验是非常不方便的。浏览器的版本变动极快,很容易造成兼容性问题。比如IE和Firefox打开同一个网站会差异很大类似这些不兼容的问题对客户使用会造成困扰。适合简单的录入,不太方便。快捷键和光标支持不好。以鼠标为最基本的操作方式。B/S最大的优点(最简单:B/S最大优势:客户端不用维护,适用于用户群庞大,或客户需求经常发生变化的情况。只有掌握以上这些技术的基础,才能使本截图系统的设计及开发得以正常进行。2.4.1.C/S与B/S的区别如下:Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的。(1)硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网、租用设备、信息管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。(2)对安全要求不同C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。可以通过B/S发布部分可公开信息。B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。5(3)对程序架构不同C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。(4)软件重用不同C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。(5)系统维护不同系统维护在是软件生存周期中,开销大。C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级,升级难。可能是再做一个全新的系统B/S构件组成,方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小。用户从网上自己下载安装就可以实现升级。(6)处理问题不同C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关。应该都是相同的系统B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。与操作系统平台关系最小。(7)用户接口不同C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。(8)信息流不同C/S程序一般是典型的中央集权的机械式处理,交互性相对低,B/S信息流向可变化,B-B、B-C、B-G等信息、流向的变化,更像交易中心。63.系统需求分析3.1性能需求提供两种界面效果,可以供不同用户喜欢效果,界面友好,操作简单易学,方便快捷。3.2E-R图设计ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。本系统的各实体类的属性图如图1,图2,图3所示:图1操作界面格局属性图图2截图管理属性图图3退出系统属性图本系统的E-R图如图4所示操作人员界面格调操作人员截图点击人员退出系统7图4系统E-R图用户截图运行关闭图片保存复制84.系统设计4.1本系统的设计目标JAVA自作屏幕截图系统代替了原来的手工操作,能够快速、准确地截取图片,保存等功能。具体有以下实现功能:快速清细节图操作方便简单提供不能界面效果4.2系统功能整体设计系统开发的总体任务如下:截图部分,操作简单,截图画面清晰,有操作提示。保存到剪切板,提供粘贴到word等功能。保存,提供选择目录界面,现则要保存的界面,保存图片。如图5所示:Java自作屏幕截图系统运行截图复制到剪切板保存关闭结束保存成功保存成功图5系统流程图95.系统设计实现5.1系统主界面实现系统主界面如图1所示图1截图系统主界面界面格调部分实现:JPaneljp=newJPanel();/放置两个单选按钮的面板jp.add(java=newJRadioButton(JAVA界面);jp.add(system=newJRadioButton(系统界面,true);java.addActionListener(this);system.addActionListener(this);jp.setBorder(BorderFactory.createTitledBorder(界面格调);截图操作区部分代码实现:start=newJButton(开始截取);cancel=newJButton(退出);10start.addActionListener(this);cancel.addActionListener(this);JPanelbuttonJP=newJPanel();c=newJPanel(newBorderLayout();JLabeljl=newJLabel(截图展示区,JLabel.CENTER);工具栏整体实现:JPanelnewall=newJPanel();newall.add(all,BorderLayout.NORTH);newall.setBorder(BorderFactory.createTitledBorder(工具栏);图2截图系统(java界面)主界面界面格局效果代码实现elseif(source=java)/金属外观try11UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName();SwingUtilities.updateComponentTreeUI(this);catch(Exceptionexe)exe.printStackTrace();elseif(source=system)/本地外观tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();SwingUtilities.updateComponentTreeUI(this);catch(Exceptionexe)exe.printStackTrace();5.2系统截图实现图片移动光标截取图片代码:/特意定义一个方法处理鼠标移动,是为了每次都能初始化一下所要选择的区域privatevoiddoMouseMoved(MouseEventme)if(select.contains(me.getPoint()this.setCursor(newCursor(Cursor.MOVE_CURSOR);current=States.MOVE;elseStatesst=States.values();for(inti=0;i=this.getWidth()wid=this.getWidth()-select.x;if(select.y+select.height=this.getHeight()het=this.getHeight()-select.y;get=bi.getSubimage(select.x,select.y,wid,het);jf.dispose();updates();鼠标坐标的选取,通过鼠标移动来取得当前鼠标位置代码如下:/根据东南西北等八个方向决定选中的要修改的X和Y的座标privatevoidinitSelect(Statesstate)switch(state)caseDEFAULT:currentX=0;currentY=0;break;caseEAST:currentX=(endXstartX?END_X:START_X);currentY=0;break;caseWEST:currentX=(endXstartX?START_X:END_X);currentY=0;break;caseNORTH:currentX=0;currentY=(startYendY?END_Y:START_Y);15break;caseSOUTH:currentX=0;currentY=(startYendY?START_Y:END_Y);break;caseNORTH_EAST:currentY=(startYendY?END_Y:START_Y);currentX=(endXstartX?END_X:START_X);break;caseNORTH_WEST:currentY=(startYendY?END_Y:START_Y);currentX=(endXstartX?START_X:END_X);break;caseSOUTH_EAST:currentY=(startYendY?START_Y:END_Y);currentX=(endXstartX?END_X:START_X);break;caseSOUTH_WEST:currentY=(startYendY?START_Y:END_Y);currentX=(endXstartX?START_X:END_X);break;default:currentX=0;currentY=0;break;截图截面如图3所示:16图3截图展示界面显示图像窗体的实现:/一个临时类,用于显示当前的屏幕图像privateclassTempextendsJPanelimplementsMouseListener,MouseMotionListenerprivateBufferedImagebi;privateintwidth,height;privateintstartX,startY,endX,endY,tempX,tempY;privateJFramejf;privateRectangleselect=newRectangle(0,0,0,0);/表示选中的区域privateCursorcs=newCursor(Cursor.CROSSHAIR_CURSOR);/表示一般情况下的鼠标状态(十字线)privateStatescurrent=States.DEFAULT;/表示当前的编辑状态privateRectanglerec;/表示八个编辑点的区域/下面四个常量,分别表示谁是被选中的那条线上的端点publicstaticfinalintSTART_X=1;publicstaticfinalintSTART_Y=2;publicstaticfinalintEND_X=3;publicstaticfinalintEND_Y=4;privateintcurrentX,currentY;/当前被选中的X和Y,只有这两个需要改变privatePointp=newPoint();/当前鼠标移的地点privatebooleanshowTip=true;/是否显示提示.如果鼠标左键一按,则提示就不再显示了17publicTemp(JFramejf,BufferedImagebi,intwidth,intheight)this.jf=jf;this.bi=bi;this.width=width;this.height=height;this.addMouseListener(this);this.addMouseMotionListener(this);initRecs();privatevoidinitRecs()rec=newRectangle8;for(inti=0;iendX?startX:endX)-5,y-5,10,10);rec3=newRectangle(startXendX?startX:endX)-5,y1-5,10,10);rec4=newRectangle(startXendX?startX:endX)-5,(startYendY?startY:endY)-5,10,10);18rec5=newRectangle(x1-5,(startYendY?startY:endY)-5,10,10);rec6=newRectangle(x-5,(startYendY?startY:endY)-5,10,10);rec7=newRectangle(x-5,y1-5,10,10);if(showTip)g.setColor(Color.CYAN);g.fillRect(p.x,p.y,230,20);g.setColor(Color.RED);g.drawRect(p.x,p.y,230,20);g.setColor(Color.BLACK);g.drawString(请按住鼠标左键不放选择截图区后双击截图,p.x,p.y+15);截图时请按住鼠标左键不放选择截图区后双击截图按照这条说明即可完成截图。图4复制到剪切板界面复制到剪切板或保存关闭代码实现“privatevoidinitPanel()save=newJButton(保存(S);copy=newJButton(复制到剪帖板(C);close=newJButton(关闭(X);save.setMnemonic(S);19copy.setMnemonic(C);close.setMnemonic(X);JPanelbuttonPanel=newJPanel();buttonPanel.add(copy);buttonPanel.add(save);buttonPanel.add(close);JLabelicon=newJLabel(newImageIcon(get);this.add(newJScrollPane(icon),BorderLayout.CENTER);this.add(buttonPanel,BorderLayout.SOUTH);save.addActionListener(this);copy.addActionListener(this);close.addActionListener(this);publicvoidactionPerformed(ActionEvente)Objectsource=e.getSource();if(source=save)doSave(get);elseif(source=copy)doCopy(get);elseif(source=close)get=null;doClose(this);点击“复制到剪贴板”即可保存到剪切板中。20图5保存图片界面此图展示的是java界面格调的效果。点击“保存”按钮,然后选择要保存的文件夹即可保存。21图6选择保存图片路径界面此图展示的是系统界面格调的效果。点击“保存”按钮,然后选择要保存的文件夹即可保存。代码实现:privatevoidinitPanel()22save=newJButton(保存(S);copy=newJButton(复制到剪帖板(C);close=newJButton(关闭(X);save.setMnemonic(S);copy.setMnemonic(C);close.setMnemonic(X);JPanelbuttonPanel=newJPanel();buttonPanel.add(copy);buttonPanel.add(save);buttonPanel.add(close);JLabelicon=newJLabel(newImageIcon(get);this.add(newJScrollPane(icon),BorderLayout.CENTER);this.add(buttonPanel,BorderLayout.SOUTH);save.addActionListener(this);copy.addActionListener(this);close.addActionListener(this);23图7保存图片成功界面24图8保存图片成功界面256.参考文献1赵洋,张玉新,幺炜。基于B/S模式的学术期刊稿件管理系统J。河北农业大学学报;2012年02期。P1032赵洋,张玉新,幺炜。基于B/S模式的学术期刊稿件管理系统J。河北农业大学学报;2012年02期。P1033刘烨。C/S模式与B/S模式的对比分析J;科技信息(学术研究)。2007年30期。4赵文耘,朱军钰。软件工程。第一版。北京:清华大学出版社,2011。P2365钱乐秋,赵文耘,朱军钰。软件工程。第一版。北京:清华大学出版社,2011。P2456李兴华。Java开发实战经典M。北京:清华大学出版社,2009.8。P377臧萌。Java入门123:一个老鸟的Java学习心得M。北京:清华大学出版社,2010.5。P16226THETECHNIQUEDEVELOPMENTHISTORYOFJSPBy:KathySierraandBertBatesSource:Servlet&JSPTheJavaServerPages(JSP)isakindofaccordingtowebofthescriptplaitdistancetechnique,similarcarriesthescriptlanguageofJavaintheserveroftheNetscapecompanyofserver-sideJavaScript(SSJS)andtheActiveServerPages(ASP)oftheMicrosoft.JSPcomparestheSSJSandASPtohavebettercanexpandsex,anditisnomoreexclusivethananyfactoryorsomeoneparticularserverofWeb.ThoughthenormofJSPistobedrawupbytheSuncompanyof,anyfactorycancarryouttheJSPonownsystem.TheAfterSunreleasetheJSP(theJavaServerPages)formally,thethiskindofnewWebapplicationdevelopmenttechniqueveryquicklycausedthepeoplesconcern.JSPprovidedaspecialdevelopmentenvironmentfortheWebapplicationthatestablishesthehighdynamicstate.AccordingtotheSunparlance,theJSPcanadapttoincludetheApacheWebServer,IIS4.0onthemarketatinsideof85%serverproduct.ThischapterwillintroducetherelatedknowledgeofJSPandDatabases,andJavaBeanrelatedcontents,isallcertainlyrougherintroductionamongthembasiccontents,sayperhapstoisaGuideonly,ifthereaderneedsthemoredetailedinformation,pleasingthebookofconsultthehomologousJSP.1.1GENERALIZETheJSP(JavaServerPages)isfromthecompanyofSunMicrosystemsinitiate,themanycompaniestheparticipatetothebuildupthetogetheroftheakindtheofdynamicthestatewebthepagetechniquestandard,theithavetheitintheconstructiontheofthedynamicstatethewebpagethestrongbutthedonottheespeciallyofthefunction.JSPandthetechniqueofASPoftheMicrosoftisveryalike.BothallprovidetheabilitythatmixeswithacertainprocedurecodeandisexplainbythelanguageenginetocarryouttheprocedurecodeinthecodeofHTML.Underneathwearesimpleofcarryontheintroductiontoit.27JSPpagesaretranslatedintoservlets.So,fundamentally,anytaskJSPpagescanperformcouldalsobeaccomplishedbyservlets.However,thisunderlyingequivalencedoesnotmeanthatservletsandJSPpagesareequallyappropriateinallscenarios.Theissueisnotthepowerofthetechnology,itistheconvenience,productivity,andmaintainabilityofoneortheother.Afterall,anythingyoucandoonaparticularcomputerplatformintheJavaprogramminglanguageyoucouldalsodoinassemblylanguage.Butitstillmatterswhichyouchoose.JSPprovidesthefollowingbenefitsoverservletsalone:ItiseasiertowriteandmaintaintheHTML.YourstaticcodeisordinaryHTML:noextrabackslashes,nodoublequotes,andnolurkingJavasyntax.YoucanusestandardWeb-sitedevelopmenttools.EvenHTMLtoolsthatknownothingaboutJSPcanbeusedbecausetheysimplyignoretheJSPtags.Youcandivideupyourdevelopmentteam.TheJavaprogrammerscanworkonthedynamiccode.TheWebdeveloperscanconcentrateonthepresentationlayer.Onlargeprojects,thisdivisionisveryimportant.Dependingonthesizeofyourteamandthecomplexityofyourproject,youcanenforceaweakerorstrongerseparationbetweenthestaticHTMLandthedynamiccontent.Now,thisdiscussionisnottosaythatyoushouldstopusingservle

温馨提示

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

评论

0/150

提交评论