HTTP Status 405 - HTTP method GET is not supported by this URL
type Status report
message 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).
Apache Tomcat/6.0.35
快两年没有写过JavaEE代码了,今天晚上心血来潮想写个Servlet,
使用浏览器访问http://127.0.0.1:8080/MyTest/xx?name=aaa 一直报这个错误,我的Servlet代码如下
public class MyServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String name = req.getParameter("name");
name = name==null?"传入的name为空":name;
PrintWriter pw = resp.getWriter();
pw.print(name);
super.doGet(req, resp);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doPost(req, resp);
}
}
解决办法:
搞了好长时间发现应该把doGet和doPost里面的那个super.doGet(req, resp); super.doPost(req, resp);给注释掉,,否则总会调用父类HttpServlet的doGet或doPost方法
HttpServlet 中doGet方法如下:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String protocol = req.getProtocol();
String msg = lStrings.getString("http.method_get_not_supported");
if (protocol.endsWith("1.1")) {
resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
} else {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
}
}