【发布时间】:2012-01-04 11:41:55
【问题描述】:
目前,我有一个 jsp 文件、一些 java bean 类和两个 servlet。 第一个 servlet 负责上传文件并打印出它的上下文。 第二个 servlet 负责获取 java beans 代码,执行它并在 jsp 上打印结果。然而,这最终导致在 servlet 中重复代码。重复代码其实就是需要重新上传文件才能调用beans:
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));
接下来是连接 servlet 和 java bean 的代码。这可行,但我的问题是共享此上传文件的最佳方式是什么?如果我可以将文件路径存储在一个变量中并从第一个 servlet 调用它到第二个没有重复的代码。
提前致谢。
P.S 我也读过这个问题,Share uploaded file between servlets in session,但我并没有真正做到。
【问题讨论】:
标签: java jsp servlets javabeans