0

ここで Java Web 開発を学び、最初のサーブレットを開始しようとしています。しかし、私はこのエラーが発生しています: HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).

私は HTML フォームで「get」メソッドを使用しています。ご覧のとおり、doget メソッドが実装されています。しかし、なぜこのエラーが発生するのかわかりません。それは私のものと関係がありますweb.xmlか?

HTMLメソッドを「post」に変更し、doPostメソッドを使用してPOSTメソッドを使用しようとしましたが、同等のエラーも発生します。私はこれをテストするために行っただけで、投稿を使用したくありません。

web.xml:

<web-app 
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <servlet>
     <servlet-name>AppleFox</servlet-name>
     <servlet-class>com.AppleFox.web.ProcessQuery</servlet-class>
  </servlet>

  <servlet-mapping>
     <servlet-name>AppleFox</servlet-name>
     <url-pattern>/ProcessQuery.do</url-pattern>
  </servlet-mapping>
</web-app>

サーブレット コード:

package com.AppleFox.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ProcessQuery
 */
public class ProcessQuery<HttpServletRequest> extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String query = ((ServletRequest) request).getParameter("query");

        out.println("Sorry we could find any results for " + query + ".");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        return;
    }
}

また、html フォームで「get」メソッドを使用しています。なぜこのエラーが発生するのかわかりません。

4

2 に答える 2

2

次の行を変更してインポートを再配置するだけで、すべて正常に動作するはずです。

変化する:

public class ProcessQuery<HttpServletRequest> extends HttpServlet {

public class ProcessQuery extends HttpServlet {

インポートを次のように変更します。

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
于 2012-06-26T22:48:04.583 に答える