因为现在都用的spring配置的,很少用到servlet了,今天想写一个demo,结果报了一个405的错误.....................真的是打扰了.......
405概念
请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。 鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。
其实就是说你访问了不是你能访问了,例如你使用post方法访问静态资源,Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求
那么我的这个问题是在哪里呢?
image.png
super.doGet(req,resp);我忘记注释掉了...........................
以前只知道要注释掉,但不知道是为什么,今天我点进去看了一下里面是怎么写的..........
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(405, msg);
} else {
resp.sendError(400, msg);
}
}
你看,这里,只要http 协议是1.1就返回405,不然就返回400,反正就是直接报错....