




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
591论文网www.591LW.comPAGEPAGE1591论文网www.591LW.com仿酷狗的音乐搜索软件的开发与测试摘要当前,面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以借助于搜索引擎到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外人们使用最多的网上服务。随着Internet的快速发展,海量信息和人们获取所需信息能力之间的矛盾日益明显,在信息海洋里查找信息,如同大海捞针一样,搜索引擎恰好解决了这一难题。Web音乐搜索软件是采用Java语言开发的简易的互联网音乐搜索引擎,它是集网络爬虫(采用java内置的多线程及Socket技术)和基于B/S结构的Web查询(Struts框架)为一体的搜索软件。该系统能完成对互联网的音乐信息的采集、分析、分类、保存和查询等功能;经过测试与分析,说明本系统运行稳定、可靠,具有一定的实用价值。关键字:音乐;搜索软件;网络爬虫;Socket技术;Struts框架;多线程DesignandImplementationofWebMusicSearchSoftwareAbstractAtpresent,inthevastnetworkresource,searchengineforallInternetsurfingusersprovidestheoneentrance.NoexaggerationtosaythatalluserscanbereachedanyoneplaceontheInternetbytheaidofsearchengines.SoithasbecomethemostusingonlineservicesforpeopleexceptE-mail.However,withtherapiddevelopmentoftheInternet,thecontradictionsbetweenmassiveinformationandobtainingthecapacityofrequiredinformationisobviousdaybyday.Searchingforinformationinvastnetworkresourcesislikelookingforneedlesinahaystack,butsearchenginejustsolvesthisproblem.Thesoftwareisaboutwebmusicsearch.ItusesjavatodevelopasimpleInternetmusicsearchengine,andalsogathersthenet-reptile(intra-builderjavamulti-threadandsockettechnology)andwebsearchbasedonB/Sconstruction(strutsframework)asawholesearchsoftware.Itcanachievethecollection,analysis,classification,storageandsearchofInternetmusicinformation.Throughthetestandanalysis,itshowsthissystemisstable,reliable,andhassomepracticalvalues.Keywords:Music;SearchSoftware;Crawl;SocketTechnology;StrutsStructure;Multi-thread目录论文总页数:21页HYPERLINK1引言 PAGEREF_Toc169601881\h1HYPERLINK1.1课题背景 PAGEREF_Toc169601882\h1HYPERLINK1.2国内外研究现状 PAGEREF_Toc169601883\h1HYPERLINK1.3本课题研究的意义 PAGEREF_Toc169601884\h2HYPERLINK1.4本文的主要工作 PAGEREF_Toc169601885\h2HYPERLINK2Web音乐搜索软件的需求分析 PAGEREF_Toc169601886\h2HYPERLINK2.1搜集信息 PAGEREF_Toc169601887\h2HYPERLINK2.2整理信息 PAGEREF_Toc169601888\h2HYPERLINK2.3接受查询 PAGEREF_Toc169601889\h3HYPERLINK3Web音乐搜索软件的设计 PAGEREF_Toc169601890\h3HYPERLINK3.1系统总体流程 PAGEREF_Toc169601891\h3HYPERLINK3.2系统部件介绍 PAGEREF_Toc169601892\h4HYPERLINK4Web音乐搜索软件的具体实现 PAGEREF_Toc169601893\h5HYPERLINK4.1数据设计 PAGEREF_Toc169601894\h5HYPERLINK4.2网络爬虫设计 PAGEREF_Toc169601895\h5HYPERLINK4.2.1遍历算法 PAGEREF_Toc169601896\h6HYPERLINK4.2.2模拟浏览器 PAGEREF_Toc169601897\h8HYPERLINK4.2.3正则表达式 PAGEREF_Toc169601898\h9HYPERLINK4.2.4数据分析 PAGEREF_Toc169601899\h12HYPERLINK4.3采用java多线程技术 PAGEREF_Toc169601900\h13HYPERLINK4.4web查询端 PAGEREF_Toc169601901\h14HYPERLINK4.4.1Struts框架 PAGEREF_Toc169601902\h14HYPERLINK4.4.2Struts包内容 PAGEREF_Toc169601903\h14HYPERLINK4.4.3Struts体系结构 PAGEREF_Toc169601904\h15HYPERLINK5运行测试与分析 PAGEREF_Toc169601905\h17HYPERLINK5.1软件试运行 PAGEREF_Toc169601906\h17HYPERLINK5.2软件分析 PAGEREF_Toc169601907\h19HYPERLINK结论 PAGEREF_Toc169601908\h19HYPERLINK参考文献 PAGEREF_Toc169601909\h19HYPERLINK致谢 PAGEREF_Toc169601910\h20HYPERLINK声明 PAGEREF_Toc169601911\h21PAGE第16页共21页1引言1.1课题背景面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。随着因特网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找信息,就如同大海捞针一样,搜索引擎恰好解决了这一难题(它可以为用户提供信息检索服务)。但是随着Internet的发展,搜索引擎也面临着海量信息和人们获取所需信息能力的矛盾。因此,信息的高效搜索显得格外重要。1.2国内外研究现状 搜索引擎技术伴随着WWW的发展是引人注目的。搜索引擎大约经历了三代的更新发展:第一代搜索引擎出现于1994年。这类搜索引擎一般都索引少于1,000,000个网页,极少重新搜集网页并去刷新索引。而且其检索速度非常慢,一般都要等待10秒甚至更长的时间。在实现技术上也基本沿用较为成熟的IR(InformationRetrieval)、网络、数据库等技术,相当于利用一些已有技术实现的一个WWW上的应用。在1994年3月到4月,网络爬虫WorldWebWorm(WWWW)平均每天承受大约1500次查询。大约在1996年出现的第二代搜索引擎系统大多采用分布式方案(多个微型计算机协同工作)来提高数据规模、响应速度和用户数量,它们一般都保持一个大约50,000,000网页的索引数据库,每天能够响应10,000,000次用户检索请求。1997年11月,当时最先进的几个搜索引擎号称能建立从2,000,000到100,000,000的网页索引。Altavista搜索引擎声称他们每天大概要承受20,000,000次查询。2000年搜索引擎2000年大会上,按照Google公司总裁LarryPage的演讲,Google正在用3,000台运行Linux系统的个人电脑在搜集Web上的网页,而且以每天30台的速度向这个微机集群里添加电脑,以保持与网络的发展相同步。每台微机运行多个爬虫程序搜集网页的峰值速度是每秒100个网页,平均速度是每秒48.5个网页,一天可以搜集超过4,000,000网页。搜索引擎一词在国内外因特网领域被广泛使用,然而他的含义却不尽相同。在美国搜索引擎通常指的是基于因特网的搜索引擎,他们通过网络机器人程序收集上千万到几亿个网页,并且每一个词都被搜索引擎索引,也就是我们说的全文检索。著名的因特网搜索引擎包括FirstSearch、Google、HotBot等。在中国,搜索引擎通常指基于网站目录的搜索服务或是特定网站的搜索服务,本人这里研究的是基于因特网的搜索技术。1.3本课题研究的意义搜索引擎自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个“小岛”,网页链接是这些“小岛”之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。搜索技术的意义在此。1.4本文的主要工作搜索引擎是根据用户的查询请求,查找信息返回给用户。为了保证用户查找信息的精度和新鲜度,搜索引擎需要建立并维护一个庞大的索引数据库。一般的搜索引擎由网络爬虫程序、数据分析,查询数据等部分组成。本文的各章分配是这样安排的:第一章介绍系统的开发背景;第二章介绍系统的需求分析;第三章介绍系统的总体结构;第四章介绍系统的详细设计;第五章测试与运行本系统;最后是全文的总结。2Web音乐搜索软件的需求分析随着因特网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找信息,就像大海捞针一样,搜索引擎恰好解决了这一难题(它可以为用户提供信息检索服务)。但是随着Internet的发展,搜索引擎也面临着海量信息和人们获取所需信息能力的矛盾。一个好的搜索引擎不再仅凭借数据库大小、更新频率、检索速度、对多语言的支持这几个基本特性来衡量,如何从庞大的资料库中精确地找到正确的资料,被公认为是下一代搜索技术的竞争要点,智能化、个性化特色的新型引擎成为未来搜索引擎的发展趋势。搜索引擎需要实现互联网信息的快速查询,要实现以下功能。2.1搜集信息搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其它网页中的超链接,就像日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超链接器人便可以遍历绝大部分网页。2.2整理信息搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。2.3接受查询用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息,以帮助用户判断此网页是否含有自己需要的内容。3Web音乐搜索软件的设计根据上一章需求分析的情况,结合本软件所要需实现的功能,进行设计。本章主要介绍该软件的设计流程及步骤。3.1系统总体流程图3.1系统结构图3.1是本系统结构图,该系统分两大模块:数据获取模块和用户查询模块所示首先通过网络爬虫从Internet上获取信息(模拟浏览器和遍历算法)保存在爬虫(crawl)的缓存中进行分析如果存在音乐连接得出音乐的名字和url,然后调用javabean进行把得到的数据写入数据库,客户端过浏览器访问TOMCAT(javaweb中间件)对数据进行查询,得到用户查询结果。3.2系统部件介绍(1)网络爬虫网络爬虫(crawl),是一个功能很强的WEB扫描程序。它可以在扫描WEB页面的同时检索其内的超链接并加入扫描队列等待以后扫描。因为WEB中广泛使用超链接,所以一个crawl程序理论上可以访问整个WEB页面。为了保证网络机器人遍历信息的广度和深度需要设定一些重要的链接并制定相关的扫描策略。(2)搜索网络机器人将遍历得到的页面存放在系统缓存中,为了提高检索效率,用正则表达式对得到的文本数据进行分析,分析出music的超链接和名字并保存到mysql数据库内方便查找而且执行效率很高。用户输入搜索条件后搜索程序将通过数据库进行检索然后把符合查询要求的数据库按照一定的策略进行分级排列并且返回给用户。(3)基于Struts框架的client端Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中。(4)Tomcat的Web服务器Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Web服务器如何工作:在Web页面处理中大致可分为三个步骤:第一步,Web浏览器向一个特定的服务器发出Web页面请求;第二步,Web服务器接收到Web页面请求后,寻找所请求的Web页面,并将所请求的Web页面传送给Web浏览器;第三步,Web服务器接收到所请求的Web页面,并将它显示出来。Tomcat是一个开放源代码、运行servlet和JSPWeb应用软件的基于Java的Web应用软件容器。Tomcat由Apache-Jakarta子项目支持并由来自开放性源代码Java社区的志愿者进行维护。TomcatServer是根据servlet和JSP规范进行执行的,因此我们就可以说TomcatServer也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。(5)mysql的关系型数据库MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQLAB的注册商标。MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL网站(http://www.mysql.com)提供了关于MySQL和MySQLAB的最新的消息。4Web音乐搜索软件的具体实现4.1数据设计本系统的开发采用mysql数据库,它提供强大的数据查询功能,能快速的查找出用户需要的信息。(1)数据库名:musicexplorer(2)表mappingmusic(主要用音乐url和音乐名字的映射)(3)表结构,如图4.1所示。图4.1数据库结构在图4.1中,各字段名的含义如下:①m_name,音乐名称;②m_url,音乐的url地址;③m_type,音乐的类型;④m_date,采集音乐的时间。4.2网络爬虫设计网络爬虫的主要功能是对互联网上的网页进行抓取,对网页进行分析提取出音乐数据方便以后的查询.其功能主要体现在对网页的遍历,和正则比对分析提取出web音乐信息。输入一个入口网址,和采集的网页数量网络爬虫程序将自动遍历网站信息保存到关系数据库中,方便快速查询在爬虫的状态栏目显示当前正分析的网页信息。在爬虫的文本框里显示已经分析采集到的音乐名称。4.2.1遍历算法crawl程序发现超连接后并不调用自己本身而是把超连接加入到等待队列中。当crawl程序扫描完当前页面后会根据制定的策略访问队列中的下一个超连接地址。主要通过crawl.java类来实现。虽然这里只描述了一个队列,但在实际编程中用到了二个队列,每个队列都保存着同一处理状态的URL。(1)等待队列:在这个队列中,URL等待被crawl程序处理。新发现的URL也被加入到这个队列中处理队列当crawl程序开始处理时,他们被送到这个队列中错误队列如果在解析网页时出错,URL将被送到这里。该队列中的URL不能被移入其他队列中。(2)完成队列:如果解析网页没有出错,URL将被送到这里。该队列中的URL不能被移入其它队列中在同一时间URL只能在一个队列中,我们把它称为URL的状态。在这个过程中,当一个URL被加入到等待队列中时crawl程序就会开始运行。只要等待队列中有一个网页或crawl程序正在处理一个网页,程序就会继续他的工作。当等待队列为空并且当前没有任何网页时,crawl程序就会停止它的工作。遍历算法源程序如下所示:publicvoidcrawlx(StringstartUrl,intmaxUrls)throwsException{ Stringdispalystr=""; mp3m=null; intn=0; Stringdate=null; da=newDatabase();HashSetcrawledList=newHashSet();LinkedHashSettoCrawlList=newLinkedHashSet();Searchsea=null;Analyzerana=null;toCrawlList.add(startUrl);SimpleDateFormatsetDateFormat=newSimpleDateFormat("yyyy/MM/ddkk:mm:ss");date=setDateFormat.format(Calendar.getInstance().getTime());while(toCrawlList.size()>0){if(maxUrls!=-1){if(crawledList.size()==maxUrls){break;}}//GetURLatbottomofthelist.Stringurl=(String)toCrawlList.iterator().next();//RemoveURLfromthetocrawllist.toCrawlList.remove(url);//增加已处理的URL到crawledListcrawledList.add(url);if(hasBeenVisit(url)){System.out.println("重复:"+url+"已经去掉");}else{addchain.add(url);sea=newSearch(url);StringpageContents=sea.getMessage();//downloadPage(verifiedUrl);if(pageContents!=null&&pageContents.length()>0){//从页面中获取有效的链接ana=newAnalyzer(pageContents,url);ArrayListlinks=ana.linkAnalyzer();//retrieveLinks(verifiedUrl,pageContents,crawledList,limitHost)Listmp3link=ana.mp3analyzer();toCrawlList.addAll(links);for(Iteratorits=mp3link.iterator();its.hasNext();){ m=(mp3)its.next();Stringsql="INSERTINTO`mappingmusic`(`m_url`,`m_name`,`m_type`,`m_date`)VALUES('"+m.getUrl()+"','"+m.getName()+"','"+m.getType()+"','"+date+"')"; da.executeInsert(sql); dispalystr+="名字:"+m.getName()+"\n"+"类型:"+m.getType()+"\n"+"地址:"+m.getUrl()+"\n"; this.jtextpane.setText(dispalystr); //System.out.println("名字:"+m.getName()+"\n"+"地址:"+m.getUrl()+"\n"+"类型:"+m.getType()); }this.jl.setText(url);System.out.println("正在解析:"+url);Thread.sleep(300);}n++;}}jl.setText("已经完成采集任务共分析"+n+"地址");System.out.println("共分析"+n+"地址");}4.2.2模拟浏览器4.2.3正则表达式4.2.4数据分析因为Web中的信息都是建立在HTML协议之上的,所以网络机器人在检索网页时的第一个问题就是如何解析HTML。在解决如何解析之前,先来介绍HTML中的几种数据。①文本:除了脚本和标签之外的所有数据。②注释:程序员留下的说明文字,对用户是不可见的。③简单标签:由单个表示的HTML标签。④开始标签和结束标签:用来控制所包含的HTML代码。在进行解析的时候不用关心所有的标签,只需要对其中一种重要的进行解析即可。本软件只关心超连接标签,下面介绍了在本软件中如何使用。(1)超连接标签超连接定义了WWW通过Internet链接文档的功能。他们的主要目的是使用户能够任意迁移到新的页面,这正是网络爬虫最关心的标签。publicArrayListlinkAnalyzer()//分析网页上存在的超链接.保存在等待队列中publicListmp3analyzer()//分析网页上存在的音乐超链接和音乐名称.保存到数据库中方便查询(2)超链接分析以下是本软件所用到的关键源程序(超链接),代码如下: if(compsparestring("href",firstword)&&firstword.indexOf("{")<0&&firstword.indexOf("}")<0&&firstword.indexOf("'")<0&&firstword.indexOf(";")<0&&firstword.indexOf(".css")<0&&firstword.indexOf(".ico")<0&&!firstword.endsWith("mp3")){ Stringout=null; out=compstr.replace("href=|\"",firstword,""); if(out.startsWith("http://")){//完整的路径 li.add(out); } else{//相对的路径 try{ if(webadd.endsWith("html")||webadd.endsWith("htm")){ intm=webadd.lastIndexOf("/"); Strings=webadd.substring(0,m); webadd=s; System.out.println("debug"+s+"/"+out); } } catch(StringIndexOutOfBoundsExceptione){ } if(out.startsWith("/")){ /*intm=webadd.lastIndexOf("/"); webadd=webadd.substring(0,m); System.out.println("dafa"+webadd); */ out=webadd+out; li.add(out); } else{ out=webadd+"/"+out; li.add(out); } } } i++; }4.3采用java多线程技术线程是Java的一大特性,它可以是给定的指令序列、给定的方法中定义的变量或者一些共享数据(类一级的变量)。在Java中每个线程有自己的堆栈和程序计数器(PC),其中堆栈是用来跟踪线程的上下文(上下文是当线程执行到某处时,当前的局部变量的值),而程序计数器则用来跟踪当前线程正在执行的指令。(1)线程的生命周期一个线程的的生命周期可以分成两阶段:生存(Alive)周期和死亡(Dead)周期,其中生存周期又包括运行状态(Running)和等待状态(Waiting)。当创建一个新线程后,这个线程就进入了排队状态(Ready),当线程中的方法start()被调用时,线程就进入生存周期,这时它的方法isAlive()始终返回真值,直至线程进入死亡状态。(2)线程的实现有两种方法可以实现线程,一种是扩展java.lang.Thread类,另一种是通过java.lang.Runnable接口。所实现的代码如下:if(ThreadNum>0) { for(inti=0;i<3;i++){ t[i]=newThread(crawl,String.valueOf(i)); t[i].start(); } }else{ t[0]=newThread(crawl); t[0].start(); } }4.4web查询端4.4.1Struts框架易用性和重用性的优点,同时简化了基于MVC的web应用程序的开发。本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括:(1)控制程序流程的类;(2)实现和执行程序事务逻辑的类;(3)自定义的标记库使得创建和验证HTML表单更加容易。4.4.2Struts包内容文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。在lib目录中有使用struts创建应用程序是所需的文件,如表4.2所示。表4.2系统包结构文件描述jdbc2_0-stdext.jar包含JDBC2.0OptionalPackageAPI类。如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INF\lib下Struts.jar包含struts中所有的java类。同样也需要拷贝到WEB-INF\lib下*.tld标记库描述器文件,描述了多个struts标记库中的自定义标记。同样要拷贝到WEB-INF\lib下在webapps目录下这样一些下文件,如表4.3所示。表4.3webapp目录结构Web应用程序描述Struts-blank.war一个简单的web应用程序Struts-documentation.war包含struts站点上所有struts文档Struts-example.warStruts很多特性的示范Struts-exercisetaglib.war主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记Struts-template.war包含struts模板标记的介绍和范例Struts-upload.war一个简单的例子,示范如何使用struts框架上传文件4.4.3Struts体系结构接下来从MVC角度观察struts框架中的组件,其框架中三个部分:模型,视窗和控制器。模型包括一个JavaBean组件Database,它有属性,代表用户输入的名字。它提供了get/set方法,分别用于读取和设置属性,它还提供一个executeInsert()方法,负责把属性保存到持久化存储系统中,如数据库或文件系统。对于更为复杂的Web应用,JavaBean组件可以作为EJB或Web服务的前端组件(组件Database采用数据库连接池技术有效的利用率数据资源)。视图包括一个JSP文件musicview.jsp,它提供用户界面,接受用户输入的姓名。视图还包括一个searchFormBean,它用来存放表单数据,并进行表单验证,如果用户没有输入姓名就提交表单,将返回出错信息。控制器包括一个Action类searchAction.java,它完成三项任务:①进行业务逻辑;②调用模型组件Database的executequery()方法查询数据库;③决定将合适的视图组件返回给用户。(1)设计细节①关键字反选,如图4.2所示。图4.2关键字反选代码如下:Stringlight_dispaly(Strings,Stringkey){//高亮显示关键字Stringresult=null; result=s.replaceAll(key,"<fontstyle='COLOR:#e10900'>"+key+"</font>");//替换成红色的字体returnresult; }②分页,如图4.3所示。图4.3分页StringpulgPage(Stringsumpage,Stringcurrentpage,Stringkey,Stringmod){//分页构造 Stringlastpage=""; Stringlastpage_be="<TDvAlign=bottomnoWrap><FONTsize=-1><ahref='search.do?key="+key+"&mode="+mod+"&page="; Stringlastpage_af="'>上一页</a>: </FONT></TD>"; Stringbefore_enu="<TDvAlign=bottomnoWrap><FONTsize=-1><spanclass='i'><ahref='search.do?key="+key+"&mode="+mod+"&page="; Stringprocess_enu="'>"; Stringafter_enu_cur="</span></FONT></TD><TDvAlign=bottomnoWrap> </TD>"; Stringbefore_enu_cur="<TDvAlign=bottomnoWrap><FONTsize=-1><spanclass='i'>"; Stringafter_enu="</a></span></FONT></TD><TDvAlign=bottomnoWrap> </TD>"; Stringnextpage=""; Stringnextpage_be="<TDvAlign=bottomnoWrap><FONTsize=-1><ahref='search.do?key="+key+"&mode="+mod+"&page="; Stringnextpage_af="'>下一页</a></FONT></TD>"; Stringpageview=""; intsum=Integer.parseInt(sumpage); lastpage=lastpage_be+String.valueOf(Integer.parseInt(currentpage)-1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SHPTA 088-2024胶带与标签用高性能热熔胶粘剂
- T/CHTS 10163-2024公路桥梁结构监测系统施工质量检验与评定标准
- 舞台租赁协议模板与舞台设备租赁合同3篇
- 上海安全监理试题及答案
- T/CCOA 68-2023食用植物油中挥发性风味成分测定顶空固相微萃取-气相色谱-质谱联用法
- 2025年茶叶供货合同范文2篇
- 小区幼稚园转让合同8篇
- 聘用外国专家协议书参考6篇
- 高值耗材备货协议书4篇
- 湿式静电除尘器项目绩效评估报告
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- GB/T 27060-2025合格评定良好实践指南
- 2024年首都机场集团招聘笔试参考题库附带答案详解
- 小学思政课《爱国主义教育》
- 太原市普通高中学生学籍簿(准确打印)
- 食品经营设施空间布局图
- 工会行政性资产管理暂行办法
- 预制箱梁运输及安装质量保证体系及措施
- 煤矿沉降观测
- 航空煤油 MSDS 安全技术说明书
- 三个股东合作协议书
评论
0/150
提交评论