多個客戶端發送寫入文件的請求,並期望響應成功或失敗。我想簡要描述在服務器端完成的工作。如何設計類及其方法
- 通過servlet類處理請求並調用另一個類繼續進行。
FileWriter
類被調用,並且此類執行文件寫入過程。
a)。在上下文下創建目錄並在目錄中寫入*.txt
文件
b)。將上下文現有目錄中的一些文件複製到新創建的目錄中。
c)。壓縮(*.zip)
這個目錄class 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 }
}
正如你可以看到上面的類,有一個方法和兩個方法是private
。只有synchrnized
方法從servlet class
調用其他方法從方法裏面調用。 那麼這是處理多個客戶端請求的好的/標準的方法嗎?
或者我應該直接從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/... to context/directory_1,context/directory_2'
和第三步將壓縮目錄:例如, directory_1.zip, directory_2.zip
可以在兩個要求互相排斥或一個必須等待其他的行動完成,在你的情況下創建目錄等..? – havexz
是的,你是對的。人們必須等待其他人創建目錄 – user1010399
的舉動讓我舉個例子。 'req1'在n工作於'dir1/files1',同時'req2'進入,現在'req2'需要'req1'輸出或者依賴於'dir1/files1' – havexz