077java 基于web service的跨平台上传下载系统的实现
                    联系方式 Email: lw510@qq.com      QQ: 497053418       MSN: lw510@qq.com
以下仅为该设计的基本说明介绍,若需要完整的设计和论文,建议您购买本设计.
077java 基于web service的跨平台上传下载系统的实现样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
 

本系统开发工具:JAVA
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
 
 
 
 

 
分类号                                          密级                          
 
 

基于webservice的跨平台上传下载系统的实现
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
基于WebService的跨平台上传下载系统的实现
摘  要
                                                                                                    Web Service是目前计算机界一个非常流行的技术,以至于有些人把Web Service列入目前最热门的十大技术之一。的确,随着互联网的广泛应用和发展,尤其是电子商务的发展,出于互联网上各种复杂的应用系统和对更高安全性的要求,Web Service的横空出世的确满足了当前这些的要求和需要。Web service,作为在松散耦合和动态集成基础上提供无缝跨平台互操作的解决方案,具有松散耦合,位置透明,协议独立的特点,使得它不必依赖于某个特定的实现提供尚,协议独立的特点,使得它不必依赖于某个特定的实现提供尚,对运行环境的要求也比较宽松,因此特别适合Internet上分散应用的互联。
    上传下载,作为分布式应用中的基本模块,目前主要采用控件的方法来实现,其缺点是需要下载控件,限制了使用的领域。随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,借助Web service的通用性,在Http协议下,实现上传下载逻辑的跨平台实现,采用J2EE实现之,并实现在J2EE平台下的调用。
 本文的主要内容是介绍Web Service的相关知识,以及使用Jcreator来实现Web Services上传下载的功能。
 
 
 
 
 
 
 
 
 
 
 

关键词:  Web service,上传,下载,跨平台,J2EE
论文类型:应用研究
 
The Advanced Research on Web service
ABSTRACT
 Web Service is a technique popular in the computer word today so that has been considered as one of the 10 top pop techniques by some one. Along with the application and development of Internet, especially with the development of E-Business, complicated systems and better security are required, and the technique of Web Service just well fulfills the requirement, indeed. 
As a sort of project, which providing seamless Cross-Platform interoperation based on loose coupling and dynamic integrating, Web service has the characteristics of loose coupling, location lucid and Protocol Independence, so it's independent of some special Implementation-Vendor and well fit for decentralized application and net working on internet.
Upload and download, as essential modules in distribution application, are realized by method of applying controls, whereas it's limited owning to its disadvantage, downloading controls being indispensable. Along with development of internet technique and more requirements on Cross-Platform tech., Web Service has been applied wider and wider. Recurring to Web Service's generality, under the agreement of HTTP, Upload and Download between Cross-Platforms and transferring on the platform of J2EE will be realized by applying J2EE .
Here, we'll introduce relative knowledge of Web Service and how to apply Jcreator to realize the function of Web Services' upload and download
 
 
 
 
 
 
 
Keywords: Web service,upload, download, Cross-Platform
Type of Thesis: Application Research

目录
第一章 绪论 1
§1.1引言 1
§1.2 技术原理 1
§1.3发展动态 1
§1.4本论文章节安排 2
第二章 相关技术介绍 2
§2.1 什么是Web Service 2
§2.1.1如何调用Web Service 3
§2.1.2 组成Web service的技术 4
§2.1.3 SOAP 6
§2.1.4 Axis 6
§2.1.4小结 7
第三章 功能的实现 7
§3.1系统设计 7
§3.1 服务端 8
§3.2 客户端 10
第四章 总结与展望 16
致谢 17
参考文献 18
 
第一章 绪论
1.1 §1.1引言
随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。而Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以用任何你喜欢的语言,不同的平台中编写Web service ,通过Web service的标准来对这些服务进行查询和访问。简单来讲,Web Services是一种新型的 Web 应用程序,Web Services是基于XML技术的一些标准的集合。这其中包括: SOAP、WSDL、UDDI,以及最近出现BPEL4WS(Business Process Execution Language for Web Services:用于Web Services的商务过程执行语言)和WSCI(Web Services Chorography Interface:Web Services协作接口)。而上传下载,作为分布式应用中的基本模块,随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,借助Web service的通用性,在Http协议下,实现上传下载逻辑的跨平台实现,采用J2EE实现之,并实现在J2EE平台下的调用。
1.2 §1.2 技术原理
Web Service是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在Web Service的体系架构中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册器(Service Registry)。角色间主要有三个操作:发布(Publish)、查找(Find)、绑定(Bind)。
Web Service中涉及两个部分:服务本身和对服务的描述。典型的应用过程是:服务提供者开发一个通过网络可以被访问的服务,然后将服务的描述注册到服务注册器或者发送给服务请求者;服务请求者通过查找动作在本地或服务注册器中检索服务描述,找到后,通过绑定就可以使用该项服务。
在本文中,客户端通过使用服务器端提供的服务接口,来实现上传和下载的功能。
1.2.1 §1.3发展动态
基于XML的Web Service是参照B2B通信协作模式制定的新的规范。它提供了概念上和结构上的,适用于各种不同平台和产品的基础。开发者可以利用J2EE技术来开发基于XML的Web Service。他们可以利用现存的J2EE技术来开发完整的,遵从XML标准的,能完全共通的Web Service。无需重新设计或者构造现有的J2EE系统,开发人员就可以构建复杂的强大的Web服务应用。
     Web Service是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。这种技术允许网络上的所有系统进行交互。随着技术的发展,一个Web Service可以包含额外的指定功能并且可以在多个B2B应用中协作通讯。
     Web Service正在不断完善,并且以一种非常智能的动态的方法来进行。这些灵活的Web Service可以理解请求中上下文的关系,并且在每一个特定的情况下产生动态的结果。这些服务会根据用户的身份,地点以及产生请求的原因来改变不同的处理,用以产生一个唯一的,定制的方案。这种协作机制对那些只对最终结果有兴趣的用户来说,是完全透明的。
   Web Service所遵循的XML标准可以增进事物通信的性能。开发人员将可以利用不同的平台,产品和标准来实现很多种可能。通过这种标准,开发人员可以建立一个系统使他们的Web Service提供最大的协同工作的能力。 
   一般来说,在不同的事务之间进行电子通信协作会有很多阻碍。全异的系统,安全限制和不相同的数据格式,导致很多B2B系统在他们自己的领域或者客户群中形成唯一。Web Service将改变这一切,使不同的事务互相通信变为可能,值得注意的是,这会降低建立商业站点的开发和维护成本。

1.3 服务端
1. 使用Jcreator建立一个项目,新建立一个jws文件,命名为:FileService.jws,这个文件将是实现上传下载服务的主文件。
   编写上传文件的接口内容如下:
 public String putFile(DataHandler dh,String name)
 {
  //TODO:上传文件。
  if (dh ==null )
   System.err.println("dh is null");  
  if(name==null)
   name="test.tmp";
  try
  {
   File dir=new File(Repository);
   if(!dir.exists())
   {
    dir.mkdir();
   }
   InputStream input=dh.getInputStream();
   FileOutputStream fos=new FileOutputStream(new File(dir,name));
   byte[] buffer=new byte[1024*4];
   int n=0;
   while((n=input.read(buffer))!=-1)
   {
    fos.write(buffer,0,n);
    System.out.print(buffer);
   }
   input.close();
   fos.close();  
  }catch(IOException e)
  {
   e.printStackTrace();  
  }
  return "\n "+ name+" 已经上传成功!";
  }
 //-----------------------------------------------------------------------------------------------
该方法的功能是根椐客户端传入的参数dh和name来把dh的内容保存到指定目录下以name命名的文件中;保存完成后,将返回成功上传的信息给客户端。
  编写下载文件的接口内容如下:
 public DataHandler getFile(String name)
 {
  //TODO:下载指定的文件
  File dir=new File(Repository);
  if(!dir.exists())
   dir.mkdir();
  File data=new File(dir,name);
  if(data.exists())
   return new DataHandler(new FileDataSource(data));
  else
   return null;
 }
 //-------------------------------------------------------------------------------------------------
该方法是根椐客户端传入的参数name,在指定的目录下查找相同的文件,如果找到,则把DataHandler类型的数据句柄回传给客户端,如果没找到,则返回一个空的句柄。
2. 将该文件拷贝到AXIS应用目录C:\Tomcat\webapps\WebServic下。
3. 访问连接http://localhost:8080/WebServic/FileService.jws?wsdl,页面应显示Axis自动生成的wsdl。如下图:
 
图3.1.1 WSDL信息
如果显示如上图内容,则说明现在服务器已经开始提供两个接口方法:getFile和putFile了;客户端可以绑定调用这两个接口来实现上传下载的功能了。
1.4 §3.2 客户端
1. 接下来使用Jcreator建立一个项目,新建立一个java文件,命名为:Client.java,这个文件将是实现调用上传下载服务的客户端程序。
编写调用上传接口的函数:
public static void upload(String strUploadFileName) throws ServiceException, MalformedURLException
 {
  //TODO:该函数的功能是把本地的文件上传到服务器上。
  //参数:
  //strUploadFileName:指定要上传的文件名,要包括完整的路径。  
  //这个地址是实际服务器的地址
  String WebServerUrl =GetWebUrl();  
//保存到服务器上的文件名。
String strSaveToSvrFileName;  
  //取得要保存到服务器上的文件名
  int iPos = strUploadFileName.lastIndexOf("\\");
  strSaveToSvrFileName =
    strUploadFileName.substring(iPos+1,strUploadFileName.length());
  DataHandler dh =
new DataHandler(new FileDataSource(strUploadFileName));
  Service service=new Service();
  Call call=(Call) service.createCall();
  call.setTargetEndpointAddress(new java.net.URL(WebServerUrl));
//指定方法的命名空间
  call.setOperationName(new QName(WebServerUrl, "putFile"));  
QName qnameattachment=new QName("FileService","DataHandler");        call.registerTypeMapping(dh.getClass(),qnameattachment,
JAFDataHandlerSerializerFactory.class,
        JAFDataHandlerDeserializerFactory.class);
  call.addParameter("s1",qnameattachment,ParameterMode.IN);
  call.addParameter("s2",XMLType.XSD_STRING,ParameterMode.IN);
//用Class.forName("java.lang.String")来获取java类型
  call.setReturnType(XMLType.XSD_STRING); 
  try
  {
   String ret=
(String)call.invoke(new Object[]{dh,strSaveToSvrFileName});
System.out.println(ret);
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
}
//---------------------------------------------------------------------------------------------------
编写调用下载文件接口的函数:
public static void download(String strFileNameOnSvr,String strSave2FileName) throws ServiceException, MalformedURLException
 {
  //TODO:该函数的功能是把到服务器上的文件下载到本地。
  //参数:
  //strUploadFileName:指定服务器上的文件名,无路径,
//只需要要有文件名就行。
  //strSave2FileName:指定要保存的路径,要包括完整的路径。
  DataHandler dh=null;
  String WebServerUrl=GetWebUrl();  
  Service service=new Service();
  Call call=(Call) service.createCall();
  call.setTargetEndpointAddress(new java.net.URL(WebServerUrl));
//指定方法的命名空间
  call.setOperationName(new QName(WebServerUrl, "getFile"));
  call.addParameter("s1",XMLType.XSD_STRING,ParameterMode.IN);
  call.setReturnType(XMLType.MIME_DATA_HANDLER);
  try
  {
   //调用服务器接口取文件数据。
dh=(DataHandler)call.invoke(new Object[]{strFileNameOnSvr});
if(dh==null)
{
 System.out.println(“找不到指定的文件。”);
 return ;
}
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  try
  {
   //取得要保存到本地的文件名
   String dir ="";
   String filename ="";
   
   int iPos = strSave2FileName.lastIndexOf("\\");
   dir = strSave2FileName.substring(0,iPos+1);
   
   iPos =strSave2FileName.lastIndexOf("\\");
   filename =
    strSave2FileName.substring(iPos+1,strSave2FileName.length());
   
   InputStream input=dh.getInputStream();
   FileOutputStream fos=new FileOutputStream(new File(dir,filename));
   byte[] buffer=new byte[1024*4];
   int n=0;
   while((n=input.read(buffer))!=-1)
   {
    fos.write(buffer,0,n);
   }
   input.close();
   fos.close();
   System.out.println("\n下载文件成功!");
  }catch(IOException ex)
  {
   ex.printStackTrace();
  }
 }
//---------------------------------------------------------------------------------------------------
然后在类中的main函数中加入更方便的操作过程,如判断用户输入的文件是否存在等:
public static void main(String[] args) throws Exception
 {
 BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
    String s;
    try
    {
     System.out.print("\n\n\n请输入您的选择(直接按回车退出):
\n\n\t\t1.上传文件\n\n\t\t2.下载文件\n-->>");
     if((s =in.readLine()).length() !=0)
     {
      //只有输入1位数才行。
      if(s.length()!=1)
      {
       System.out.println("请输入正确的选择!");
       return;
      }
      else
      {
       try
       {
        int iSelect = Integer.parseInt(s,10);
        switch(iSelect)
        {
         case 1:
          //上传
          System.out.print("\t\n请输入需要上传的文件的
完整路径名:");
          if((s =in.readLine()).length() !=0)
          {
           try
           {
            //用这个来判断是否文件存在
            FileInputStream check =
 new FileInputStream(s);
            check.close();
           }catch(Exception E)
           {
            System.out.println("所给定的文件不存
              在!退出。");
            return;
           }
           upload(s);
          }else
           System.out.println("没有输入,退出。");
          return;
         case 2:
          //下载
          String DownloadFileName;
          String Save2FileName;
          System.out.print("\t\n请输入需要下载的文件名:");
          if((DownloadFileName = in.readLine()).length() !=0)
          {
           System.out.print("\t\n请输入要保存到
的完整路径名:");
           if((Save2FileName = in.readLine()).length()!= 0)
              {
               //如果都输入了。就下载。               download(DownloadFileName,
Save2FileName);
              }else
               System.out.println("没有输入,退出。");
          }else
           System.out.println("没有输入,退出。");
          
          return;
         default:
          System.out.println("请输入正确的选择!");
          return;
        }//end of switch
       }catch(Exception E)
       {
        System.out.println("请输入正确的选择!");
        return ;
       }
      }//end of else
     }//end of while
      // An empty line terminates the program
   } catch(IOException e)
    {
      e.printStackTrace();
    }
 }
//---------------------------------------------------------------------------------------------------
2. 保存文件,并且用javac编译Client.java;用java Client 运行程序。
运行界面如图:
 
图3.2.1 程序运行界面1
输入1(上传文件)之后的界面:
 
图3.2.2 程序上传文件的界面
输入2(下载文件)之后的界面:
 
图3.2.2 程序下载文件的界面
至此,已经完全的实现了通过Web Service发布的接口来实现了上传下载的功能。
 

 
077java 基于web service的跨平台上传下载系统的实现
 

关闭窗口

与本站联系的时候,为了提高效率,请告诉本站您需要的设计编号与题目。如:001VBAC人事管理系统
编码说明:001VBAC人事管理系统,其中001VBAC 为该毕业设计的编号,VB代表开发语言,AC代表数据库(ACCESS)
版权所有:510计算机论文网:http://www.lw510.com/程序制作:510论文
Email: LW510@QQ.COM  QQ: 497053418   MSN: LW510@QQ.COM