これにアプローチする方法について、私はちょっと混乱しています。ユーザーがファイルを選択した直後に、ファイルをサーブレットにアップロードしています。次に、サーブレットはファイルを読み取り、フォームに入力します。アップロード部分に問題があります。うまくいけば、あなたがたどり、途中で問題を見つけることができるように、私が行ったことを段階的にリストします. 私はこのチュートリアルに従っています: http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html
最初に、enctype="multipart/form-data" を ajax リクエストで設定する方法に取り組まなければなりませんでした。setRequestHeader を使用して修正できました。私のJSは次のようになりました:
$.ajax({
type: "POST",
url: "GenerateServlet",
data: "button="+filename,
beforeSend: function(xhr) {xhr.setRequestHeader('Content-Type', 'multipart/form-data');},
success: function(jsonResponse) {fillTemplate(jsonResponse);},
error: function(jqXHR, textStatus, errorThrown) {alert(jqXHR+" - "+textStatus+" - "+errorThrown);}
});
さて、私はそれを解決しました。今、processRequest関数を作成しました。ただし、呼び出されていません。私の doPost メソッドが呼び出されたので、少なくとも私が行ったリクエストを実行していることがわかります。
ここから、サーブレットに何か不足しているのか、それとも ajax リクエストが間違っているのかわかりません。追加してみました:
@WebServlet(name = "FileUploadServlet", urlPatterns = {"/upload"})
@MultipartConfig
しかし、Eclipse はそれらのタイプを認識できませんでした。
誰が問題が何であるか知っていますか?