405: HTTP method GET is not supported by this URL
先看错误代码:
public class WXSenderServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); resp.getWriter().print("WXSenderServlet----doGet()"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); resp.getWriter().print("WXSenderServlet----doPost()"); } }
继承了HttpServlet而且实现了两个方法,并且:
<!-- Servlets --> <servlet> <servlet-name>WXSenderServlet</servlet-name> <servlet-class>pa.wechat.plugin.servlet.WXSenderServlet</servlet-class> </servlet> <!-- Servlet mappings url-patternå¿ é¡»å°å--> <servlet-mapping> <servlet-name>WXSenderServlet</servlet-name> <url-pattern>/wechatsender</url-pattern> </servlet-mapping>
那为什么还会有错误呢?
哈哈哈,原来是因为super.doGet(req, resp);里面不是空的。
看一位网友的回答的不错,照抄了过来:
The HttpServlet
basically follows the template method pattern where all non-overridden HTTP methods returns a HTTP 405 error "Method not supported". When you override such a method, you should not call super
method, because you would otherwise still get the HTTP 405 error. The same story goes on for your doPost()
method.
This also applies on service()
by the way, but that does technically not harm in this construct since you need it to let the default implementation execute the proper methods. Actually, the whole service()
method is unnecessary for you, you can just remove the entire method from your servlet.
The super.init();
is also unnecessary. It's is only necessary when you override the init(ServletConfig)
, because otherwise the ServletConfig
wouldn't be set. This is alsoexplicitly mentioned in the javadoc. It's the only method which requires a super
call.
Unrelated to the concrete problem, spawning a thread in a servlet like that is a bad idea. For more detail, start reading this answer.
恩,就是这样的。
相关推荐
当您遇到"405 - HTTP method GET is not supported by this URL"这样的问题时,通常意味着您的服务器端代码没有正确处理GET请求,或者请求被误定向到了一个不期望GET方法的Servlet。 首先,我们需要理解HTTP协议中...
本文将深入探讨HTTP Servlet请求的源码实现,并针对"HTTP method GET is not supported by this URL"这一常见错误进行分析和解决。 首先,让我们理解HTTP Servlet的工作原理。每当一个HTTP请求到达Web服务器时,...
This is caused by a quirk in WinZip; Apparently WinZip doesn't like IDataObject.GetData to be called before IDropTarget.Drop is called. ------------------------------------------- 5. Support and ...
Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. encodeUrl(String) - Method in class javax.servlet....
documents, however this remains supported for backward compatibility reasons. ; Note that this directive does not control the , which can be ; used regardless of this directive. ; Default Value: On ;...
In this program we are going to know how the server determines whether the password entered by the user is correct or not. This whole process is controlled on the server side. Multiple forms in jsp ...
Later is supported when map2dbg.exe tool is placed in \Bin folder of EurekaLog installation (separate download is required) 5)....Added: Exception2HRESULT in EAppDLL to simplify developing DLLs with ...
e.a=a},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function a(t){return"number"==typeof t}function n...
the ability to see how many new mail messages they have, are not supported by POP at all. These capabilities are built into programs like Eudora or Microsoft Outlook, which remember things like the ...
This is a Release Candidate (RC) release and is not officially supported. If you have questions about working with this release, post them to the ASP.NET MVC forum (http://forums.asp.net/1146.aspx), ...
- new hdimage method get_capabilities() that can return special flags - vmware3, vmware4 and vvfat classes now return HDIMAGE_HAS_GEOMETRY flag - other disk image modes by default return HDIMAGE_...
console.log('Geolocation is not supported by this browser.'); } ``` 这段代码首先检查浏览器是否支持Geolocation API,如果支持,则调用`getCurrentPosition`获取位置信息,然后通过`fetch`函数向服务器发送...
## Derby (not supported!) #hibernate.dialect org.hibernate.dialect.DerbyDialect #hibernate.connection.driver_class org.apache.derby.jdbc.EmbeddedDriver #hibernate.connection.username #hibernate....
14.1.3. 使用静态 get() 方法 14.2. 标准过滤器类 14.2.1. Alnum 14.2.2. Alpha 14.2.3. BaseName 14.2.4. Digits 14.2.5. Dir 14.2.6. HtmlEntities 14.2.7. Int 14.2.8. RealPath 14.2.9. StringToLower...