多个客户端发送写入文件的请求并期望响应成功或失败。我想简要描述一下服务器端所做的工作。
- 通过 servlet 类处理请求并调用另一个类进行下一步。
FileWriter
类被调用,该类执行以下文件写入过程。
a). 在上下文中创建目录并在目录中写入一个*.txt
文件
b). 将一些文件从上下文的现有目录复制到新创建的目录。
c).压缩(*.zip)
这个目录类 FileWriter {
public synchronized writeFile(String contextPath) { creates a directory & new file under context copyFiles(path_to_directory); } private void copyFiles(String path_to_directory){ copies files to /contextPath/directory/... from existingDirectory; compressDir( Directory_path ); // to compress the file } private void compressDir(String Directory_path) { compress the newly created directory }
正如您在上面的类中看到的,有一个方法是synchronized
,两个方法是private
。只有 synchrnized
方法是从 servlet 类
调用的,其他方法是从该方法内部调用的。
那么这是处理多客户端请求的良好/标准方式吗?
或者我应该直接从 servlet 类
调用每个方法。请纠正我并建议一种更好的方法来实现该类(class)。
@Edit : req1
来创建目录和文件,例如
context/directory_1/file_1.txt
同时 req2
来检查 directory_1
是否已经存在,因此它创建 directory_2
例如context/directory_2/file_1.txt
。
现在第二步是将文件从上下文复制到新创建的目录。让我告诉你 directory_1
与 directory_2
无关
所有新创建的目录都从 common_directory 复制文件,例如`context/common_directory/... 到 context/directory_1, context/directory_2'
第三步是压缩目录:例如directory_1.zip, directory_2.zip
最佳答案
两个建议:
不要将类命名为与 JDK 中已经存在的类相同的名称。
不要以这种方式链接方法调用,创建单一用途的方法,然后 将它们以一种方式组合在一起,清楚地表明您的意图。
class FileProcessor/*FileUtil whatever,但不是 FileWriter */{
public synchronized writeFile(String contextPath) { //在上下文中创建目录和新文件
复制文件(上下文路径); 压缩目录(上下文路径);//压缩文件
//将文件从 existingDirectory 复制到/contextPath/directory/...;
private void copyFiles(String path_to_directory){ }//压缩新建目录 private void compressDir(String Directory_path) { }
关于java - 如何设计类及其方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353910/