精华内容
下载资源
问答
  • 关于HttpServlet:此URL不支持HTTP方法GET
    千次阅读
    2021-07-27 09:48:54

    问题描述:

    @WebServlet("/MyServlet")
    public class MyServlet extends HttpServlet {
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String id = req.getParameter("id");
            System.out.print("doPost:");
            System.out.print("MyServlet-doPost-id:" + id);
            System.out.println();
            req.getRequestDispatcher("/my.jsp").forward(req, resp);
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        }
    }
    

    如果写以上代码,访问该地址,则会报错405,此URL不支持HTTP方法GET;

    关于以上问题,我查看了大部分博客,似乎和我遇到的不是同一种情况,他们都是注释掉super.(req,resp) ,这当然是一个坑。

    但我这里的问题是不一样的,我注释掉了super,没有用。

    仔细思考之后,还是得出问题的原因:doGet和doPost的区别!

    1. doGet用于向服务器发送get请求,让它传东西过来;这里就是传页面,所以重定向的页面在输入地址之后回车,就必须得运行,所以必须放在doGet里面;
    2. doPost用于向服务器提交post请求,传东西过去;这里就是传填写后的id过去,这是在网页加载完,填写完数据提交之后,所以需要放在doPost里;

    所以解决方案如下:

    @WebServlet("/MyServlet")
    public class MyServlet extends HttpServlet {
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String id = req.getParameter("id");
            System.out.print("doPost:");
            System.out.print("MyServlet-doPost-id:" + id);
            System.out.println();
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.getRequestDispatcher("/my.jsp").forward(req, resp);
        }
    }
    

    总之,这就是个考虑post和get的先后问题。

    初次接触,踩到的坑,希望帮到大家。

    更多相关内容
  • 此URL不支持Http方法GET

    千次阅读 2020-03-14 17:44:03
    出现删除问题的解决办法是,需要把代码中的super注释掉 super.doGet(req, resp); super.doPost(req, resp); 原来报错的代码 修改之后的代码 记得修改之后,重启一下tomcat就可以了 ...

    在这里插入图片描述出现删除问题的解决办法是,需要把代码中的super注释掉
    super.doGet(req, resp);
    super.doPost(req, resp);

    原来报错的代码
    在这里插入图片描述
    修改之后的代码
    在这里插入图片描述记得修改之后,重启一下tomcat就可以了

    展开全文
  • 如图,在前端与servlet交互时,如超链接href,url等,常遇到bug 原因:服务器在访问servlet会优先访问doGet方法,出现问题是servlet中doGet缺失。 解决办法:检查servlet,修改doPost为doGet方法,或者单独写一个...

    405报错
    如图,在前端与servlet交互时,如超链接href,url等,常遇到此bug
    原因:服务器在访问servlet会优先访问doGet方法,出现问题是servlet中doGet缺失。
    解决办法:检查servlet,修改doPost为doGet方法,或者单独写一个doGet方法指向doPost方法,如下

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    
    展开全文
  • HttpServlet:此URL不支持HTTP方法GET

    万次阅读 多人点赞 2019-07-03 09:14:29
    ,所有非重写HTTP方法返回此HTTP 405错误“不支持方法”。当你重写这样的方法,你应该调用super方法,因为否则你将仍然得到HTTP 405错误。 解决办法 在我们正常实现的时候,应该调用 super.xxx() 方法,而是...
    问题描述:
    @WebServlet("/demo2")
    public class HttpServletDemo2 extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //加上这个super后为什么会出现405
            super.doGet(req, resp);
            System.out.println("doGet");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doPost(req, resp);
            System.out.println("doPost");
        }
    }
    

    当使用下面的代码访问demo2的时候,浏览器会返回如下信息:

    在这里插入图片描述

    问题原因

    我们查看一下HttpServlet的部分源码:

     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);
            }
        }
    
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
     
            String protocol = req.getProtocol();
            String msg = lStrings.getString("http.method_post_not_supported");
            if (protocol.endsWith("1.1")) {
                resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
            } else {
                resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
            }
        }
    protected void doDelete(HttpServletRequest req,
                                HttpServletResponse resp)
            throws ServletException, IOException {
     
            String protocol = req.getProtocol();
            String msg = lStrings.getString("http.method_delete_not_supported");
            if (protocol.endsWith("1.1")) {
                resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
            } else {
                resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
            }
        }
    
    

    可以看出来,如果我们在HttpServlet的实现类中使用super.doGet()等这样类似的方法,就会出现405。这在源码中也有一定体现,即“http.method_delete_not_supported”
    HttpServlet基本遵循模板方法模式,所有非重写HTTP方法返回此HTTP 405错误“不支持方法”。当你重写这样的方法,你应该不调用super方法,因为否则你将仍然得到HTTP 405错误。

    解决办法

    在我们正常实现的时候,不应该调用super.xxx()方法,而是重新去实现这些方法,就ok了。

    展开全文
  • 01-http状态405-此url不支持http方法get

    千次阅读 2019-10-03 04:44:23
    错误: http状态405-此url不支持http方法get 原因: 转载于:https://www.cnblogs.com/zly123/p/11580483.html
  • HTTP状态405-此URL不支持HTTP方法GET

    千次阅读 2019-10-13 14:29:51
    一把泪,解决的办法:一是要把post提交的方法改为get; 改完你就认为问题就解决了?,nonono,真是当头一棒啊; 去度娘找了下终于找解决办法; 竟然只要去掉//super.doGet(req, resp);就可以了但具体原因不明; ...
  • HTTP状态405 - 此URL不支持Http方法GET

    千次阅读 2020-08-31 09:17:30
    控制台显示如下: html请求如下: servlet如下 记录一下遇到的问题
  • 因为response和request位置反了 这里位置反了所以doGet是灰的 换了个位置就好了 具体原因https://www.it1352.com/982509.html
  • 所以将post请求改为get请求即可
  • 然后看着报错提示我想的是我没有指定访问方式可能就默认是GET方式,于是我就重写了doGet()方法让它以POST方式访问,如图 就可以了。 网上查了好久千篇一律都对我的问题没有用,幸亏还是自己运气好试出来了。。。 ...
  • 此URL不支持Http方法POST

    千次阅读 2020-11-25 12:45:55
    此URL不支持Http方法POST: 当运行项目时网页出现405错误,提示此URL不支持Http方法POST 如图: 原因分析: 现在查看一下源代码: 如图: 可以看到,源代码里没有doPost函数 解决方案: 1.添加doPost方法,如图...
  • HttpServlet:此URL不支持HTTP方法GET或者POST 错误405 第一次敲这个demo时翻了一小下博客,依旧无法解决问题,原先的代码如下 package com.bdqn.servlet; import java.io.*; import javax.servlet.*; import javax...
  • 此URL不支持Http方法POST >>> 解决方法

    万次阅读 多人点赞 2019-09-21 22:56:37
    @[TOC](此URL不支持Http方法POST (错误405) >>> 解决方法) 举个简单的小例子说明 例子如下: 如果直接执行,就会出现以下的报错情况: 第一个解决方法 将 login.jsp 中的 “post” 方法改成 “get” ...
  • 写Java Web课设的时候遇到了405错误,...报错显示:方法不允许,此URL不支持Http方法POST 应该是Post和Get使用混乱,比如表单提交的action一般都是Post方法,链接href一般是Get方法,认真检查代码就会发现错误。 ...
  • HTTP Status 405 – 方法不允许 ...描述 请求行中接收的方法由源服务器知道,但目标资源不支持 Apache Tomcat/8.5.51 解决: 在目标视图前面加一个isErrorPage=“true” <%@ page language="java" contentTy...
  • http GET 请求 URL 总结

    千次阅读 2018-08-17 19:06:15
    URL 只能使用英文字母、阿拉伯数字和某些标点符号,能使用其他文字和符号。网络标准RFC 1738做了硬性规定: “…Only alphanumerics [0-9a-zA-Z], the special characters “$-_.+!*’(),” [not including the...
  • HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,设计HTTP的最初目的是为了提供一种发布和接收HTML页面的方法HTTP是客户端和服务器端之间进行请求和响应的一个标准...
  • 问题为什么我一定要在url get参数里传递大量参数,而使用post提交呢?由于实际项目实现了前后端分离,前端是vue框架开发,而且也并没有做成单页应用,所以会出现两个页面需要大量传递参数的情况。思考传统的get...
  • HTTP Get请求URL最大长度

    千次阅读 2017-04-26 11:20:02
    各浏览器HTTP Get请求URL最大长度并相同,几类常用浏览器最大长度及超过最大长度后提交情况如下: IE6.0 :url最大长度2083个字符,超过最大长度后无法提交。 IE7.0 :url最大长度2083个字符,超过最大长度后仍然...
  • 提示信息说不支持 GET 方法,我创建了一个类继承自 HttpServlet 类,并且重写了 service 方法,但是我又加了一个 super.service() 方法,这就导致出错了,下面解释原因。 因为请求过来之后会先到 service 方法,...
  • 目录 一,HTTP请求方法 常用请求方法 其他请求方法 二,HTTP请求作用 ...HTTP1.0定义了三种请求方法GET, POST 和 HEAD方法HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNE
  • 具体代码如下所示:public static String sendGet(String url,String param){String result = "";try{String urlName = url + "?"+param;//URL U = new URL(urlName);URLConnection connection = U.openConnection()...
  • http post get query body url参数

    千次阅读 2019-08-20 12:50:40
    HTTP协议中有2种向服务器提交数据的方法,一种是get,另一种是post的, 其中get方式要提交的变量在URL中,post方式通过表单提交过去,其实本质上没有特别大的区别,在做安全人的眼里一样的。只不过get提交的变量在...
  • http url get方式传递数组参数

    万次阅读 2016-07-26 11:45:30
    文为自己记录,请大家指教   URL 通过Get方式传递数组参数格式如下: ?id=1&id=2&id=3 注意:Get 方式有字数限制   后台获取时,只需要reqeust.getParameterValues("id") 获取String数组。
  • 注:本文转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html , 粉字[]内内容为个人笔记   当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在...
  • 可以看到我们postman确实是post请求,message却报错不支持get请求,说明服务器实际上收到的是一个get请求。 产生原因 如果我们访问的是线上的接口,线上的nginx一般都会对http访问做一个302重定向,跳转为https访问...
  • 请写一段JS程序提取URL中的各个GET参数(参数名和参数个数确定),将其按key-value形式返回到一个json结构中,如{a:‘1’, b:‘2’, c:’’, d:‘xxx’, e:undefined} 第一种方法:![在这里插入图片描述]...
  • 前端在调用后端GET请求时,url的接口名称和参数一般是字符串拼接的方式,为了避免字符串拼接时key值对应的value为null对后端的判断造成干扰,前端可以处理为value为null时该参数的key值省略传。以下是我自己封装了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 629,945
精华内容 251,978
关键字:

此url不支持http方法get

友情链接: ADReader_service.rar