0

私は次のクラスを持っています...

package org.me.test
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/servlet")
public class TestServlet extends HttpServlet {
/**
 * 
 */
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    resp.setContentType("text/plain");
    resp.getWriter().write("Test Servlet");
    super.doGet(req, resp);
}
}

そして次の Web.xml...

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"> 
<servlet>
    <display-name>srv</display-name>
    <servlet-name>srv</servlet-name>
    <servlet-class>
                 org.me.test.TestServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>srv</servlet-name>
    <url-pattern>/srv/*</url-pattern>
</servlet-mapping>
</web-app>

しかし、私は得る...

エラー 405: HTTP メソッド GET はこの URL ではサポートされていません

4

1 に答える 1

2

super.doGet()の最後で呼び出しているため、405 エラーが発生していますdoGet()。その行を削除してみてください。

doGet()基本クラスの のデフォルトの実装は、HttpServletその 405 エラーを返します。GET 操作をサポートするには、親実装を呼び出さdoGet() ずにオーバーライドする必要があります。そうしないと、オーバーライドがない場合に表示されることを意図した同じエラーが返されます。

于 2013-09-26T03:28:06.230 に答える