软件开发文档Word格式文档下载.docx

上传人:b****2 文档编号:5196470 上传时间:2023-05-04 格式:DOCX 页数:43 大小:98.49KB
下载 相关 举报
软件开发文档Word格式文档下载.docx_第1页
第1页 / 共43页
软件开发文档Word格式文档下载.docx_第2页
第2页 / 共43页
软件开发文档Word格式文档下载.docx_第3页
第3页 / 共43页
软件开发文档Word格式文档下载.docx_第4页
第4页 / 共43页
软件开发文档Word格式文档下载.docx_第5页
第5页 / 共43页
软件开发文档Word格式文档下载.docx_第6页
第6页 / 共43页
软件开发文档Word格式文档下载.docx_第7页
第7页 / 共43页
软件开发文档Word格式文档下载.docx_第8页
第8页 / 共43页
软件开发文档Word格式文档下载.docx_第9页
第9页 / 共43页
软件开发文档Word格式文档下载.docx_第10页
第10页 / 共43页
软件开发文档Word格式文档下载.docx_第11页
第11页 / 共43页
软件开发文档Word格式文档下载.docx_第12页
第12页 / 共43页
软件开发文档Word格式文档下载.docx_第13页
第13页 / 共43页
软件开发文档Word格式文档下载.docx_第14页
第14页 / 共43页
软件开发文档Word格式文档下载.docx_第15页
第15页 / 共43页
软件开发文档Word格式文档下载.docx_第16页
第16页 / 共43页
软件开发文档Word格式文档下载.docx_第17页
第17页 / 共43页
软件开发文档Word格式文档下载.docx_第18页
第18页 / 共43页
软件开发文档Word格式文档下载.docx_第19页
第19页 / 共43页
软件开发文档Word格式文档下载.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件开发文档Word格式文档下载.docx

《软件开发文档Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件开发文档Word格式文档下载.docx(43页珍藏版)》请在冰点文库上搜索。

软件开发文档Word格式文档下载.docx

JSP编程;

软件文档编写指南等。

二.任务概述

1.目标

本系统主要实现资源检索,当用户登陆任何一台服务器的时候,这个服务器除了要检索自己本地的资源以外,还可以作为一个客户端,自动地去连接其它服务器,发出检索请求,并将检索的结果进行合并和汇总,返回给用户。

用户只需要登陆任意一台服务器,就可以检索到该xml所描述的所有资源,并以友好方式呈现,另外提供查询花费的时间。

对于其中的特定格式资源,如动画、视频等能够直接播放。

对于word或PPT文档,能够预览其中的部分内容。

2.运行环境

硬件环境

CPU:

Pentium(R)42.60GHZ以上

物理内存:

512MB以上

硬盘:

可用空间100MB以上

软件环境

操作系统:

windowsxp

MyEclipse-6.0

TOMCAT:

tomcat-6.0.

网络环境

3.条件与限制

网络上存在大量的资源共享服务器。

三.数据描述

静态数据

在网络中,各个服务器的资源所拥有的资源相对固定,资源的信息保存在一个test.xml文档中,存放在服务器根目录下。

动态数据

对一个服务器进行特定字符串的检索会返回同样的结果。

因此,在本地服务器保存常用字符串检索结果的缓存会大大减轻网络流量的负担,提高检索效率,所以我们引入了缓存机制缓存数据。

数据采集

每次检索时,先把检索组合条件存放到包access中ResourceOperate类中变量privatestaticList<

String>

plist中,然后进行资源检索,并把检索的结果分别存放到结果缓存列表privatestaticList<

ResourceItemBean>

prslist中,和子结果缓存列表privatestatic

List<

reslist中。

前者为下次同条件新检索提供缓存数据,后者为下次在结果中检索提供缓存数据。

四.功能需求

功能描述

采用WEB服务,这是一种基于XML、SOAP、HTTP、UDDI、WSDL、等一系列标准实现的分布式计算技术。

五.性能需求

1.数据精确度

当资源有更新时能及时准确的将资源反馈给用户。

2.时间特性

响应时间短、更新处理时间及时、运行时间迅速。

3.适应性

与操作系统无关、程序设计语言无关、机器类型无关、运行环境无关的平台实现网络上应用的共享,并可用于复杂的系统集成。

六.其他需求

本系统具有可使用性强、安全保密性高、可维护性好、可移植能力强等特性。

概要设计说明书

(ArchitecturalDesignSpecification)

一.项目结构

1.项目背景

实现用户只需要登陆任意一台服务器,就可以检索到大量所需资源,尽管这些资源来自于不同的服务器,但检索的过程对用户来说是透明的,用户检索和获取这些资源就如同检索和获取所请求的服务器上的资源一样。

(1)项目开发计划;

(2)需求规格说明书;

(3)测试计划;

(4)用户操作手册;

(5)软件开发文档指南。

二.总体设计

1.需求概述

在网络环境下(也可以是一个局域网),用户登陆任何一台服务器的时候,这个服务器除了要检索自己本地的资源以外,还可以作为一个客户端,自动地去连接其它服务器,发出检索请求,并将检索的结果进行合并和汇总,返回给用户。

2.软件结构

如下流程图:

详细设计说明书

(ProceduralDesignSpecification)

一.项目包说明

com.career.websearch基包

com.career.websearch.action逻辑处理包

com.career.websearch.access数据操作包

com.career.websearch.form数据模型包

com.career.websearch.client客户端包

com.career.websearch.server服务器端包

com.career.websearch.xmlxml解析包

com.career.websearch.util公共类包

二.程序描述(逐个模块给出以下的说明:

1.路径的获得及处理代码如下

publicclassConvertUrl{

//将url转化为服务器的绝对路径

publicStringconvert(Stringpath,Stringurl){

Propertiesprop=newProperties(System.getProperties());

Stringsep=prop.getProperty("

file.separator"

);

inti=path.lastIndexOf(sep);

StringserverPath=path.substring(0,i);

i=url.lastIndexOf("

/"

StringfileName=url.substring(i+1);

StringfilePath=serverPath+sep+"

resources"

+sep+fileName;

returnfilePath;

}

//对绝结路径进行中文处理

publicStringchinaesePath(Stringpath,Stringurl){

try{

fileName=.URLEncoder.encode(fileName,"

UTF-8"

}catch(Exceptione){

e.printStackTrace();

}

//对url中文进行处理

publicStringchineseUrl(Strings){

inti=s.lastIndexOf("

Stringformer=s.substring(0,i+1);

Stringnext=null;

next=.URLEncoder.encode(s.substring(i+1),"

Stringpath=newString(former+next);

returnpath;

//获得文件名

publicStringgetName(Stringurl){

inti=url.lastIndexOf("

returnfileName;

2.用Poi技术获得文件信息并实现对各类信息的转换和提取等操作

publicclassOfficePoi{

Filefile;

FileInputStreamfis;

//构造函数创建流文件

publicOfficePoi(Stringstr){

file=newFile(str);

fis=newFileInputStream(file);

}catch(IOExceptionex){

ex.printStackTrace();

publicStringgetName(){

returnfile.getName();

//获得文件大小

publiclonggetBytes(){

returnfile.length()/1024;

//修改时间

publicStringgetModified(){

SimpleDateFormatsdf=newSimpleDateFormat("

yyyy.MM.dd"

Datedate=newDate(file.lastModified());

returnsdf.format(date);

//poi操作word文档

publicStringwordPoi(){

StringBuffercontent=newStringBuffer("

&

nbsp;

"

WordExtractorwordExtractor=null;

StringwordStr=null;

wordExtractor=newWordExtractor(fis);

String[]str=wordExtractor.getParagraphText();

for(inti=0;

i<

str.length;

i++){

content.append(str[i]+"

<

br>

}

wordStr=content.toString();

wordStr=wordStr.replace("

?

"

null"

inti=wordStr.length();

if(i>

500)

wordStr=wordStr.substring(0,500);

}catch(NullPointerExceptionne){

wordStr="

资源文件损坏!

;

if(wordStr==null){

wordStr="

该文件为空!

returnwordStr;

//poi操作ppt文档

publicStringpptPoi(){

SlideShowss=null;

StringppStr=null;

ss=newSlideShow(newHSLFSlideShow(fis));

Slide[]slides=ss.getSlides();

slides.length;

TextRun[]tr=slides[i].getTextRuns();

for(intj=0;

j<

tr.length;

j++){

content.append(tr[j].getText());

}

content.append(slides[i].getTitle());

ppStr=content.toString();

ppStr=ppStr.replace("

"

inti=ppStr.length();

ppStr=ppStr.substring(0,500);

}catch(NullPointerExceptionne){

ppStr="

if(ppStr==null){

returnppStr;

}

3.ResourceKind.java类实现判断资源的类型

资源有文本、视频、音频、ppt文档等类型

publicclassResourceKind{

publicintgetKind(Stringstr){

Strings=str.toLowerCase().trim();

if(s.equals("

avi"

)||s.equals("

rm"

wav"

asf"

)){

return1;

//判断为视频

}elseif(s.equals("

mp3"

wma"

return2;

//判断为音频

jpg"

jpeg"

gif"

bmp"

return3;

//判断为图片

doc"

return4;

//判断为word文档

rar"

zip"

return5;

//判断为压缩文档

swf"

return6;

//判断为flash

pdf"

return7;

//判断为pdf文档

ppt"

return8;

//判断为ppt文档

}else{

return9;

//其它类型

4.ResourOperate.java类实现对资源的整合缓存及判断

publicclassResourceOperate{

publicstaticintflag=0;

publicstaticintlistSize;

privatestaticList<

plist=newArrayList<

();

prslist=newArrayList<

reslist=newArrayList<

//得到一页资源即把第curpage页的资源放到List表里。

Res中有单页记录数

publicstaticList<

getOnePage(intcurpage,List<

condList){

List<

list=newArrayList<

if(flag==0){

Stringkey=condList.get(0);

Stringkind=condList.get

(1);

Stringselect=condList.get

(2);

if((!

plist.isEmpty())&

(plist.get(0).equals(key))//判定缓存中是否有相应数据

&

(plist.get

(1).equals(kind))

(plist.get

(1).equals(select))){

list=prslist;

}else{

if(!

plist.isEmpty())

plist.clear();

//对缓存进行初始化

plist.add(key);

plist.add(kind);

plist.add(select);

if("

1"

.equals(condList.get

(2)))

list=ParseResource.callParse(condList);

//符合条件的列表

else{

list=SearchInterClient.getRes(condList);

//符合条件的列表

List<

localList=ParseResource.callParse(condList);

if(localList.size()!

=0)

for(inti=0;

i<

localList.size();

i++){

list.add(localList.get(i));

}

prslist=list;

reslist=list;

list=getFromResults(reslist,condList);

reslist=list;

flag=0;

listSize=list.size();

Collections.sort(list,newSortByDate());

intcount=list.size();

if(count<

=Res.page_record)

returnlist;

else{

intpagecount=count/Res.page_record;

if(curpage<

=pagecount){

intfromIndex=(curpage-1)*Res.page_record;

inttoIndex=fromIndex+Res.page_record;

returnlist.subList(fromIndex,toIndex);

}elseif(curpage==pagecount+1){

inttoIndex=count;

}else{

returnlist;

5.ResourseItemAction.java类实现检索的各项准备包括页面的设置;

资源实现的类型;

检索开始及结束时间;

关键字的设置;

预览的形式;

手动设置等

publicclassResourceItemActionextendsAction{

publicActionForwardexecute(

ActionMappingmapping,

ActionFormform,

HttpServletRequestrequest,

HttpServletResponseresponse){

ActionForwardforward=newActionForward();

Stringtype=request.getParameter("

type"

if(type.equals("

query"

DatebeginTime=newDate();

request.setAttribute("

beginTime"

beginTime);

forward=this.query(mapping,form,request);

}elseif(type.equals("

split"

if(request.getAttribute("

)==null){

DatebeginTime=newDate();

request.setAttribute("

forward=this.split(mapping,form,request);

DateendTime=newDate();

endTime"

endTim

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2