web-dev-qa-db-ja.com

<form action = "/ sampleServlet"で例外が発生する

Jspで<form action="/sampleServlet" method="get" name="form1">を呼び出すと、次の例外が発生します。

http 404エラー-sampleServletが見つかりません。web.xmlファイルでsampleServletを設定し、url-patternも/ sampleServletに設定します。

404(サーブレットが見つかりません)が表示されるのはなぜですか?

11
user2365917

HTMLでURLを使用している場合、先頭に/を付けずに、現在のURL(つまり、表示されている現在のページ)を基準にします。先頭/で、ウェブサイトのルートに関連しています:

<form action="/context-path/sampleServlet">

または

<form action="sampleServlet">

あなたがしたいことをします。

アクションパス内にコンテキストを動的に追加することをお勧めします。例(JSPの場合):

<form action="${pageContext.request.contextPath}/sampleServlet">

これにより、たとえば、ファイルを移動したりコードをコピーしたり、コンテキストの名前を変更したりする場合に、パスを変更する必要がなくなります。

33

あなたを助けるかもしれない

サーブレット構成

<servlet>
    <servlet-name>sampleServlet</servlet-name>
    <servlet-class>test.sampleServlet</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>sampleServlet</servlet-name>
    <url-pattern>/sampleServlet/</url-pattern>
  </servlet-mapping>

サーブレットコード:

package test;

import Java.io.IOException;
import Java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class sampleServlet extends HttpServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException{
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<h1>Hello Servlet Get</h1>");
        out.println("</body>");
        out.println("</html>"); 
    }
}

JSPコード:

<html>
  <body>
     <form action="/sampleServlet/" method="GET">
      <input type="submit" value="Submit form "/>
     </form>
  </body>
</html>

送信ボタンをクリックして、サーブレット出力が表示されたら

5
Ravi Kavaiya

Action = "sampleServlet"を使用するだけです

それはあなたのために働くでしょう。

1
Syam