HTTPステータス405-HTTPメソッドPOSTはこのURLではサポートされていません



Http Status 405 Http Method Post Is Not Supported This Url



プログラムが登場しました

HTTPステータス405-HTTPメソッドPOSTはこのURLではサポートされていません



request.getRequestDispatcher('/servlet/GetAddServlet?id'+user_id).forward(request, response)

解決済み(別のジャンプを使用して、myTestはプロジェクト名です)

response.sendRedirect('/MyTest/servlet/GetAddServlet?id='+user_id)

リクエストジャンプはページ配信と呼ばれます。あるページのリクエストが別のページに渡されます。割り当てなど、前のページのリクエストの操作は、リクエストを通じて取得できます。




応答ジャンプはページリダイレクトと呼ばれます。つまり、前に送信した要求は終了します。それでもリクエストを行う必要がある場合は、ページがリクエストを再送信しています。このリクエストは、前のリダイレクトリクエストと同じではありません。リクエストが行われるため、リクエストを介してリダイレクトする前にリクエストパラメータを取得することはできません。

-----------------------------------------オンラインで収集------- ----------------------------------------

Forward、include、redirectは、jsp内のWebページ(jspまたはservlt)の3つの異なるルーティング関係です。 3つは同じように見えますが、それでも多くの違いがあり、これらの微妙な違いを理解することはWeb開発において非常に重要です。 。
説明:
まず、forward、includeはjavax.servlet.RequestDispatcherによってカプセル化され、RequestDispatcherインターフェースの実装は、次のように宣言されているコンテナーコンテナーによって提供されます。



  • void forward(ServletRequest req、ServletResponse res)
  • void include(ServeltRequest req、ServletResponse res)

RequestDispatcherを取得する方法は2つあります。


1、ServletContext.getRequestDispatcher(文字列パス)

ここで、パスは「/」で開始する必要があります。つまり、ここでのパスは、コンテキストのルートからの相対パスである必要があります。


2、ServeltRequest.getRequestDispatcher(文字列パス)
ここでのパスは相対パスにすることができます。パスが「/」で始まる場合は、コンテキストのルートから始まると見なされます。


第二に、リダイレクトはHttpServletResponse.sendRedirect(String location)によってサポートされています
差:


3つすべてがユーザーの要求を転送できますが、それでも多くの違いがあります。違いは主に次の側面に集中しています。


1.転送およびインクルードはリクエストスコープ内でオブジェクトを共有し、リダイレクトは機能しません。つまり、リクエストのスコープとしてjavabeanが宣言されている場合、転送されるリソースはjavabeanにもアクセスでき、redriecはアクセスできません。


2、forwardとincludeは基本的にコンテキストの内部リソースに転送され、redirectは次のような外部リソースにリダイレクトできます。req.sendRedriect( 'http://www.baidu.com')