毕业设计要做一个基于J2EE的软件智能开发包,现在一点头绪都没有啊, 主要是智能升级,还要支持断点的,开个头好吗???

解决方案 »

  1.   

    去看看java的TCP/IP编程吧,j2ee和这个关系不大
      

  2.   

    FileUpload   ■ 概况:一个可以直接使用的文件上载组件。   ■ 官方资源:http://jakarta.apache.org/
      ■ 何时适用:当你想要在Java服务器环境中加入一个易用、高性能的文件上载组件之时。   ■ 示例应用:要求服务器端应用目录的WEB-INF/lib下面有commons-fileupload-1.0-dev.jar。   ■ 说明:   FileUpload组件解决了常见的文件上载问题。它提供了一个易用的接口来管理上载到服务器的文件,可用于JSP和Servlet之中。FileUpload组件遵从RFC1867,它分析输入请求,向应用程序提供一系列上载到服务器的文件。上载的文件可以保留在内存中,也可以放入一个临时位置(允许配置一个表示文件大小的参数,如果上载的文件超过了该参数指定的大小,则把文件写入一个临时位置)。另外还有一些参数可供配置,包括可接受的最大文件、临时文件的位置等。   下面介绍一下使用FileUpload组件的步骤。   首先创建一个HTML页面。注意,凡是要上载文件的表单都必须设置enctype属性,且属性的值必须是multipart/form-data,同时请求方法必须是POST。下面的表单除了上载两个文件,另外还有一个普通的文本输入框: <form name="myform" action="fileuploaddemo.jsp"
     method="post" enctype="multipart/form-data">
        输入你的名字:<br />
          <input type="text" name="name" size="15"/><br />
      图形:<br />
          <input type="file" name="myimage"><br/>
      文件:<br />
          <input type="file" name="myfile"><br /><br />
        <input type="submit" name="Submit" 
         value="Submit your files"/>
     
      接下来创建JSP页面。 // …
    // ① 检查输入请求是否为multipart的表单数据。
    boolean isMultipart = FileUpload.
      isMultipartContent(request);
    // …
    // ② 为该请求创建一个句柄,通过它来解析请求。执行
    //    解析后,所有的表单项目都保存在一个List中。
    DiskFileUpload upload = new DiskFileUpload();
    // 通过句柄解析请求,解析得到的项目保存在一个List中
    List items = upload.parseRequest(request);
    // …
    // ③ 通过循环依次获得List里面的文件项目。要区分表示
    //    文件的项目和普通的表单输入项目,使用isFormField()
    //    方法。根据处理请求的要求,我们可以保存上载的文
    //    件,或者一个字节一个字节地处理文件内容,或者打
    //    开文件的输入流。
    Iterator itr = items.iterator();while(itr.hasNext()) {
    FileItem item = (FileItem) itr.next();
            
    // 检查当前的项目是普通的表单元素,还是一个上载的文件
    if(item.isFormField()) {
    // 获得表单域的名字
    String fieldName = item.getFieldName();
    // 如果表单域的名字是name…
    if(fieldName.equals("name"))
    request.setAttribute("msg", 
    "Thank You: " + item.getString());

    } else {
    // 该项目是一个上载的文件,把它保存到磁盘。
    // 注意item.getName()
    // 会返回上载文件在客户端的完整路径名称,这似乎是一个BUG。
    // 为解决这个问题,这里使用了fullFile.getName()。
    File fullFile  = new File(item.getName());  
    File savedFile = new File
    (getServletContext().getRealPath("/"),
    fullFile.getName());
    item.write(savedFile);
    }
    }
     
      我们可以通过上载句柄的upload.setSizeMax来限制上载文件的大小。当上载文件的大小超过允许的值时,程序将遇到异常。在上面的例子中,文件大小的限制值是-1,表示允许上载任意大小的文件。   还有其他一些略有变化的使用形式,正如前面所指出的,我们可以在上载的文件上打开一个输入流,或者让它们驻留在内存中直至空间占用达到一定的限制值,或者在判断文件类型的基础上,以String或Byte数组的形式获取其内容,或者直接删除文件。这一切都只要使用FileItem类提供的方法就可以方便地做到(DefaultFileItem是FileItem的一个实现)。
      

  3.   

    HttpClient   ■ 概况:这个API扩展了java.net包,提供了模拟浏览器的功能。   ■ 官方资源:主页,二进制,源代码。   ■ 何时适用:当你要构造Web浏览器的功能;当你的应用需要一种高效的办法进行HTTP/HTTPS通信时。   ■ 示例应用:要求CLASSPATH中有commons-httpclient.jar,common-logging.jar。要求使用JDK 1.4或更高版本。   ■ 说明:   HttpClient扩展和增强了标准java.net包,是一个内容广泛的代码库,功能极其丰富,能够构造出各种使用HTTP协议的分布式应用,或者也可以嵌入到现有应用,为应用增加访问HTTP协议的能力。在Commons稳定版中,HttpClient的文档似乎要比其他包更完善一些,而且还带有几个实例。下面我们通过一个简单的例子来了解如何提取一个Web页面,HttpClient文档中也有一个类似的例子,我们将扩充那个例子使其支持SSL。注意本例需要JDK 1.4支持,因为它要用到Java Secure Socket Connection库,而这个库只有JDK 1.4及更高的版本才提供。   ① 首先确定一个可以通过HTTPS下载的页面,本例使用的是https://www.paypal.com/。同时确保%JAVA_HOME%/jre/lib/security/java.security文件包含了下面这行代码:security.provider.2=com.sun.net.ssl.internal.ssl.Provider。   除了这些设置之外,HTTPS连接的处理方式没有其他特别的地方--至少对于本例来说如此。不过,如果远程网站使用的根证书不被你使用的Java认可,则首先必须导入它的证书。   ② 创建一个HttpClient的实例。HttpClient类可以看成是应用的主驱动程序,所有针对网络的功能都依赖于它。HttpClient类需要一个Connection Manager来管理连接。HttpConnectionManager允许我们创建自己的连接管理器,或者,我们也可以直接使用内建的SimpleHttpConnectionManager或MultiThreadedHttpConnectionManager类。如果在创建HttpClient时没有指定连接管理器,HttpClient默认使用SimpleHttpConnectionManager。 // 创建一个HttpClient的实例
    HttpClient client = new HttpClient();
     
      ③ 创建一个HttpMethod的实例,即确定与远程服务器的通信要采用哪种传输方式,HTTP允许采用的传输方式包括:GET,POST,PUT,DELETE,HEAD,OPTIONS,以及TRACE。这些传输方式分别作为一个独立的类实现,但所有这些类都实现HttpMethod接口。在本例中,我们使用的是GetMethod,创建GetMethod实例时在参数中指定我们想要GET的URL。 // 创建一个HttpMethod的实例
    HttpMethod method = new GetMethod(url);
     
      ④ 执行HttpMethod定义的提取操作。执行完毕后,executeMethod方法将返回远程服务器报告的状态代码。注意executeMethod属于HttpClient,而不是HttpMethod。 // 执行HttpMethod定义的提取操作
    statusCode = client.executeMethod(method);
     
      ⑤ 读取服务器返回的应答。如果前面的连接操作失败,程序将遇到HttpException或IOException,其中IOException一般意味着网络出错,继续尝试也不太可能获得成功。服务器返回的应答可以按照多种方式读取,例如作为一个字节数组,作为一个输入流,或者作为一个String。获得服务器返回的应答后,我们就可以按照自己的需要任意处置它了。 byte[] responseBody = method.getResponseBody();
     
      ⑥ 最后要做的就是释放连接。 method.releaseConnection();
     
      以上只是非常简单地介绍了一下HttpClient库,HttpClient实际的功能要比本文介绍的丰富得多,不仅健壮而且高效,请参阅API文档了解详情。
      

  4.   

    Net   ■ 概况:一个用于操作Internet基础协议的底层API。   ■ 官方资源:主页,二进制,源代码。   ■ 何时适用:当你想要访问各种Internet底层协议之时(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP,以及SMTP)。   ■ 示例应用:要求CLASSPATH中包含commons-net-1.0.0.jar。   ■ 说明:   Net包是一个强大、专业的类库,类库里的类最初属于一个叫做NetComponents的商业产品。   Net包不仅支持对各种低层次协议的访问,而且还提供了一个高层的抽象。大多数情况下,Net包提供的抽象已能满足一般需要,它使得开发者不再需要直接面对各种协议的Socket级的低层命令。使用高层抽象并不减少任何功能,Net API在这方面做得很出色,既提供了足够的功能,又不至于在特色方面作过多的妥协。   SocketClient是支持所有协议的基础类,它是一个抽象类,聚合了各种协议都需要的公用功能。各种不同协议的使用过程其实很相似,首先利用connect方法建立一个指向远程服务器的连接,执行必要的操作,最后终止与服务器的连接。下面通过实例介绍具体的使用步骤。 // …
    // ① 创建一个客户端。我们将用NNTPClient
    //  从新闻服务器下载新闻组清单。
    client = new NNTPClient();
    // …
    // ② 利用前面创建的客户端连接到新闻服务器。
    //  这里选用的是一个新闻组较少的服务器。
    client.connect("aurelia.deine.net");
    // …
    // ③ 提取新闻组清单。下面的命令将返回一个
    //  NewsGroupInfo对象的数组。如果指定的服
    //  务器上不包含新闻组,返回的数组将是空的,
    //  如果遇到了错误,则返回值是null。
    list = client.listNewsgroups();
    //...
    // ④ 最后终止与服务器的连接。
     if (client.isConnected())
       client.disconnect();
     
      必须说明的是,listNewsgroups命令可能需要较长的时间才能返回,一方面是因为网络速度的影响,另外也可能是由于新闻组清单往往是很庞大的。NewsGroupInfo对象包含有关新闻组的详细信息,并提供了一些操作新闻组的命令,比如提取文章总数、最后发布的文章、发布文章的权限,等等。
      

  5.   

    文件断点下载的网上有个开源的项目具体叫什么忘了 是国内某个java网站的项目