現在、jspファイル、Java Beanクラス、および2つのサーブレットがあります。 最初のサーブレットはファイルをアップロードし、そのコンテキストを出力します。 2番目のサーブレットは、Java Beanコードをフェッチして実行し、結果をjspに出力します。しかし、これはサーブレットでコードを複製することになります。重複したコードは、ファイルが豆を呼び出すために再アップロードする必要があること、実際にある:サーブレット間でアップロードされたファイルを
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 Beanとサーブレットを接続するコードがあります。これは動作しますが、私の質問は、このアップロードされたファイルを共有する最良の方法は何ですか?変数にファイルパスを格納して、最初のサーブレットから重複したコードなしで2番目のサーブレットに呼び出すことができます。
ありがとうございます。
P.S私はこの質問もよく読んでいますが、Share uploaded file between servlets in sessionですが、本当にそれを行うことはできませんでした。