このトピックについてよく検索しましたが、探しているものを提供する質問/回答はないようです。答えがどこかに浮かんでいる場合はお詫び申し上げます。
私が持っているのは、私が作成した一連のユーティリティ JSP であり、適切な JSP に移動するためのボタン フォームがあるインデックス タイプの JSP を介してアクセスします。それぞれ次のようになります。
<form method="POST" action="delete.jsp">
<input type="submit" value="Delete" name="B2">
</form>
私の delete.jsp には、次のように、ボタンが押されるとサーブレットを呼び出す別のフォームがあります。
<form method="post" action="ModelServlet">
Select file to delete: <input type="file" name="dataFile" id="fileChooser" /><br />
<br /> <input type="submit" name="DELETE" value="Delete" />
</form>
この「削除」ボタンを押すと、「HTTP ステータス 405 - HTTP メソッド POST はこの URL ではサポートされていません」というエラーが表示されます。これにより、ユーティリティ JSP がサーブレットを見つけるのを妨げている何らかのマッピング エラーまたは何かがあると思われます。これに関するアイデアはありますか?私のサーブレットコードは以下の通りです:
それが呼び出している私のサーブレット:
package com.model;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
public class ModelServlet extends HttpServlet {
protected void init(){}
protected void doPost(Model ourModel, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//check for which case we have: upload, delete, move, or copy
if (ServletFileUpload.isMultipartContent(request)){
//do upload stuff
performUpload(request,response);
}
else if (request.getParameter("DELETE") != null){
//do delete stuff
performDelete(request,response);
}
else if (request.getParameter("MOVE") != null){
//do move stuff
performMove(request,response);
}
else if (request.getParameter("COPY")!= null){
//do copy stuff
performCopy(request,response);
}
}
その下の関数に対して定義されたメソッドを使用します。
乾杯、ジョー