Несколько клиентов отправляют запрос на запись файла и ожидают, что ответ либо успешный, либо неудачный.Я хотел бы кратко описать работу, проделанную на стороне сервера.
- обрабатывает запрос по классу сервлета и вызывает другой класс для продолжения.
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
}
}
Как вы можете видеть выше вкласс, в котором есть один метод, synchronized
и два метода private
.только synchrnized
метод вызывается из servlet class
другие методы вызываются внутри метода.так это хороший / стандартный способ обработки запросов нескольких клиентов?
или я должен вызывать каждый метод непосредственно из servlet class
.Пожалуйста, поправьте меня и предложите лучший способ реализации класса.
@ Редактировать: req1
приходит и создает каталог и файл, например, context/directory_1/file_1.txt
в то же время req2
приходит и проверяетчто directory_1
уже существует, поэтому он создает directory_2
, например, context/directory_2/file_1.txt
.
, теперь вторым шагом является копирование файла из контекста во вновь созданный каталог.Позвольте мне сказать вам, directory_1
не имеет ничего общего с directory_2
. Все недавно созданные каталоги копируют файл из общего_каталога, например `context / common_directory / ... в context / directory_1, context / directory_2 '
и третий шаг - сжатие каталога: например, directory_1.zip, directory_2.zip