В настоящее время у меня есть один JSP-файл, несколько классов Java-бинов и два сервлета.Первый сервлет отвечает за загрузку файла и распечатывает его контекст.Второй сервлет отвечает за выборку кода Java-бина, его выполнение и вывод результата на jsp.Однако это приводит к дублированию кода в сервлетах.Дублированный код на самом деле заключается в том, что файл должен быть повторно загружен для вызова bean-компонентов:
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
Iterator<FileItem> iterator = upload.parseRequest(request).iterator();
File uploadedFile = null;
String dirPath = "C:\\fileuploads";
while (iterator.hasNext()) {
FileItem item = iterator.next();
if (!item.isFormField()) {
String fileNameWithExt = item.getName();
File filePath = new File(dirPath);
if (!filePath.exists()) {
filePath.mkdirs();
}
uploadedFile = new File(dirPath + "/" + fileNameWithExt);
item.write(uploadedFile);
} else {
String otherFieldName = item.getFieldName();
String otherFieldValue = item.getString();
}
}
FileInputStream fstream = new FileInputStream(uploadedFile);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
Далее идет код, который соединяет сервлет с Java-бинами.Это работает, но мой вопрос, каков наилучший способ поделиться этим загруженным файлом?Если я могу сохранить путь к файлу в переменной и вызывать его от первого сервлета до второго без дублированного кода.
Заранее спасибо.
PS Я также читал этот вопрос, Обмен загруженным файлом между сервлетами в сеансе , но мне действительно не удалось это сделать.