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')