[解決済み] HTTPステータス 405 - HTTPメソッドGETは、このURLではサポートされていません [重複].
2022-03-02 03:42:18
質問
しかし、私はこの下のエラーを解決する方法がわからない。doGet()メソッドを削除すると、同じエラーが発生します。
HTTP ステータス 405 - HTTP メソッド GET はこの URL ではサポートされていません"
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PDFServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{
this.doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{
response.setContentType("application/pdf");
ServletOutputStream out=response.getOutputStream();
File pdf=null;
BufferedInputStream buf=null;
try{
pdf=new File("C:\\Users\\lk\\Desktop\\Desktop\\ example.pdf");
response.setContentLength((int)pdf.length());
FileInputStream input=new FileInputStream(pdf);
buf=new BufferedInputStream(input);
int readBytes=0;
while((readBytes=buf.read())!=-1) out.write(readBytes);
}catch(IOException e){
System.out.println("file not found!");
}finally{
if(out!=null) out.close();
if(buf!=null) buf.close();
}
}
}
web.xmlを使用します。
<?xml version="1.0" encoding="UTF-8"?>
-<web-app xsi:.........." version="2.5">
-<servlet>
<description>This is the description of my Java EE component</description>
<display-name>This is the display name of my Java EE component</display-name>
<servlet-name>PDFServlet</servlet-name>
<servlet-class>PDFServlet</servlet-class>
</servlet>
-<servlet-mapping>
<servlet-name>PDFServlet</servlet-name>
<url-pattern>/PDFServlet</url-pattern>
</servlet-mapping>
-<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
-<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
解決方法は?
サーブレットコードは正しいようです。
提供する
web.xml
エントリとサーブレット呼び出し用 URL を指定します。
このエラーが発生する主な原因は2つあります。
1) 有効なdoGet()メソッドを持っていない。サーブレットのパスをアドレスバーに直接入力すると、TomcatなどのWebコンテナはdoGet()メソッドを呼び出そうとする。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException{
....
}
2) HTML フォームから HTTP post リクエストを行ったが、それを処理する doPost() メソッドを持っていない。doGet() は "Post" リクエストを処理することができません。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException{
....
}
詳しくは @BalusC さんの回答をお読みください。 サーブレットにおけるdoGetとdoPost
関連
-
[解決済み] [Solved] java.lang.IllegalStateException: レスポンスがコミットされた後では(forward | sendRedirect | create session)できません。
-
[解決済み] HTTPServletRequest getParameterMap() と getParameterNames の比較
-
[解決済み] HTTPステータス 405 - HTTPメソッドGETは、このURLではサポートされていません [重複].
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] JavaScriptでHTTP GETリクエスト?
-
[解決済み】サーブレットベースのアプリケーションで、設定リソースファイルをどこに置き、どのように読み込むか?
-
[解決済み] サーブレットマッピングのurlパターンにおける/と/*の違いについて
-
[解決済み] WARでアノテーションを使用してサーブレットフィルタの実行順序を定義する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] java.lang.IllegalStateException: レスポンスがコミットされた後では(forward | sendRedirect | create session)できません。
-
[解決済み] HTTPServletRequest getParameterMap() と getParameterNames の比較
-
[解決済み] HTTPステータス 405 - HTTPメソッドGETは、このURLではサポートされていません [重複].
-
[解決済み】サーブレットベースのアプリケーションで、設定リソースファイルをどこに置き、どのように読み込むか?
-
[解決済み] サーブレットマッピングのurlパターンにおける/と/*の違いについて
-
[解決済み] WARでアノテーションを使用してサーブレットフィルタの実行順序を定義する方法