私は、NetBeansを使用していると私はいくつかのツールに応じて任意のXMLとJSONファイルを処理したウェブベースのアプリケーションを作成するつもりです。これまでは、htmlを使用した基本的なサイトを作成しました。また、javabeansで書かれたいくつかのJavaコードもあります。 javaサーブレットを使用してxmlまたはjsonファイルを読み込んで処理する最善の方法は何と思いますか?どのようにしてファイルを渡すことができますか(ユーザーが選択したファイルは、さらに処理を実行できる側に渡します)。私はHTTPClientクラスが良い方法だと読んだことがありますが、これが最善かどうかはわかりません。あなたはマルチパートリクエストを処理するためのApache CommonsのするFileUploadライブラリを使用することができ、あなたの時間Javaサーブレットを使用してjsonまたはxmlファイルを読み取る方法は?
0
A
答えて
0
ため
感謝。マルチパートリクエストは、ファイル要素を持つフォームがサーブレットに投稿されたときに受け取るものです。例えば
:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
(...)
public void doPost(HttpServletRequest request, HttpServletResponse response) {
if (ServletFileUpload.isMultipartContent(request)) {
handleMultiPartContent(request);
}
}
private void handleMultiPartContent(HttpServletRequest request) {
ServletFileUpload upload = new ServletFileUpload();
upload.setFileSizeMax(2097152); // 2 Mb
try {
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
FileItemStream item = iter.next();
if (!item.isFormField()) {
File tempFile = saveFile(item);
// process the file
}
}
}
catch (FileUploadException e) {
LOG.debug("Error uploading file", e);
}
catch (IOException e) {
LOG.debug("Error uploading file", e);
}
}
private File saveFile(FileItemStream item) {
InputStream in = null;
OutputStream out = null;
try {
in = item.openStream();
File tmpFile = File.createTempFile("tmp_upload", null);
tmpFile.deleteOnExit();
out = new FileOutputStream(tmpFile);
long bytes = 0;
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
bytes += len;
}
LOG.debug(String.format("Saved %s bytes to %s ", bytes, tmpFile.getCanonicalPath()));
return tmpFile;
}
catch (IOException e) {
LOG.debug("Could not save file", e);
Throwable cause = e.getCause();
if (cause instanceof FileSizeLimitExceededException) {
LOG.debug("File too large", e);
}
else {
LOG.debug("Technical error", e);
}
return null;
}
finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
catch (IOException e) {
LOG.debug("Could not close stream", e);
}
}
}
これは、ファイルをアップロードし、サーバのハードディスク上の一時ファイルとして保存します。その後、必要なファイルをファイルと一緒に実行できます。
は、特に非常に大きなファイルのためのより良いアプローチは、貯蓄をスキップして直接InputStreamを処理するかもしれません。ストリームを直接処理できる適切なXMLライブラリ(Staxなど)が必要です。
EDIT:あなたのフォームのaction属性は、サーブレットマッピングのURLパターンと一致する必要があります。
例HTML:
<form action="upload" ENCTYPE='multipart/form-data' method="POST">
<input type="file" name="user_file" accept="text/xml">
<input type="submit" value="Validate" />
</form>
例のweb.xmlの抜粋:あなたが使用することができます
<servlet>
<servlet-name>FileReaderServlet</servlet-name>
<servlet-class>my.application.FileReaderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileReaderServlet</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
0
のいずれかのHttpClient apacheの(または)日によって提供さは、両方の良いAPIです、HttpURLClientを提供します。 Apacheを選択する場合は、余分なJarsをインストールする必要があります。
のApacheのHttpClientは、Sunとの比較、余分なメソッドのカップルが1を提供しています。
+0
よろしくお願いいたします。私はthr one bt apacheを試してみます。私はいくつかの瓶が必要であることを発見し、それらをインストールして、今それらをまとめてみよう。 – Angelina
関連する問題
- 1. ajaxを使用してjsonファイルを読み取る方法は?
- 2. Javaを使用してXMLファイルから値を読み取る
- 3. ジャクソンライブラリ、JSONを使用してjavaでCSVファイルを読み取る方法
- 4. javaを使ってXMLファイルからプロパティを読み取る方法は?
- 5. C#を使用してこの種のXMLファイルを読み取る方法は?
- 6. Javaを使用して単一のJSONファイルで複数のJSONドキュメントを読み取る方法は?
- 7. NSJSONSerializationクラスリファレンスを使用してJSONファイルを読み取る方法は?
- 8. Javaを使用してシリアルシリアルデータを読み取る方法は?
- 9. Java変換を使用してInformaticaを使用してJSONファイルを読み取る方法
- 10. javacツールパーサーを使用してJavaファイルからインラインコメントを読み取る方法は?
- 11. Javaを使用してMicrosoft Visioファイルの内容を読み取る方法は?
- 12. VBScriptを使用してiniファイルを読み取る方法は?
- 13. Imagemagickを使用してPNGファイルを読み取る方法は?
- 14. LabVIEWを使用してCSVファイルを読み取る方法は?
- 15. ハイブを使用してS3 XMLファイルクエリを読み取る方法
- 16. javaコードでjsonArrayを使用してjson応答を読み取る方法
- 17. はXTENDを使用してMydslGenratorを使用してJSONファイルを読み取る方法XTEND
- 18. wpfでxmldataproviderを使用してxmlファイルを読み取る方法C#
- 19. VBScriptを使用してXMLファイルの子タグを読み取る方法
- 20. PHPを使用してXMLファイルからデータを読み取る方法
- 21. HttpHandlerを使用してポート80でXMLファイルを読み取る方法
- 22. Javaコードを使用してxmlノードを読み取る
- 23. xmlファイルをJavaから読み取る
- 24. Javaを使用してXMLファイルから機能値を読み取る
- 25. XmlReaderを使用してxmlを部分的に読み取る方法は?
- 26. Webプロキシを使用してインターネットからXMLを読み取る方法は?
- 27. フレックスを使用してxmlタグとそのデータを読み取る方法は?
- 28. Java PushbackInputStreamを使用して数値を読み取る方法
- 29. Javaを使用してコンソールエコーデータを読み取る方法
- 30. QXmlStreamReaderを使用してXMLファイルを読み取る
ありがとう!このコードをサーブレットに使用しますが、実際には何もしません。私はこのエリアを初めて訪れています。私がやったことから何かが欠けていると思います。 JSPファイルにはhtmlコードがあります。サーブレットと通信するフォームは次のとおりです。
私は本当にどこに問題があるかわかりません。バリデーションボタンのようなアクションはありません。何もしませんでした。明らかなことは何もありません。再度、感謝します! – Angelina
web.xmlにサーブレットを定義してマップしていますか? –