HTTP method GET is not supported by this URL

本文介绍了一个Servlet类如何通过覆写doGet或doPost方法处理HTTP请求。当Servlet未正确覆写这些方法时,会返回405错误,表示请求的方法不被允许。文章还提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


public class Servlet2 extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse resp )throws ServletException, IOException {
super.doGet(req, resp);
}

@Override
protected void doPost(HttpServletRequest req,
HttpServletResponse resp)throws ServletException, IOException {
//设置响应类型
resp.setContentType("text/html;charset=utf-8") ;
//从响应实例中获取打印流
PrintWriter out = resp.getWriter() ;
out.println("<html>") ;
out.println("<head><title>servlet2</title></head>") ;
out.println("<body>") ;
out.println("从Servlet2中获取请求参数name的值:") ;
out.println(req.getParameter("name")) ;
out.println("</body>") ;
out.println("</html>") ;
}
}

此时我们访问:http://localhost:8000/../servlet2?name=test
就会出现:
[color=red]HTTP Status 405 - HTTP method GET is not supported by this URL[/color]
[size=medium][color=blue]出现错误的原因[/color]:[/size]
1,继承HttpServlet的Servlet没有覆写对应请求和响应的处理方法即:doGet或
doPost等方法;默认调用了父类的doGet或doPost等方法;
2, 父类HttpServlet的doGet()或doPost()方法覆盖了你重写的doGet或doPost等
方法;
只要出现以上的情况之一,父类HttpServlet的doGet或doPost等方法的默认实现是
返回状态代码为405的HTTP错误表示:对于指定资源的请求方法不被允许。
[size=medium][color=blue]解决方法[/color]:[/size]
1,子类覆写父类的doGet或doPost等方法;
2,在你的Servlert中覆写doGet或doPost等方法来处理请求和响应,不要调用父类
HttpServlet的doGet() 和 doPost()方法,即:
将doGet()方法中的 super.doGet(req, resp);
改为:this.doPost(req , resp) ; 可以解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值