HTTP method GET is not supported by this URL

本文介绍了一种常见的Servlet编程问题,即当仅定义了doPost()而未定义doGet()时,访问Servlet会抛出HTTP method GET is not supported by this URL的错误。提供了解决方案,包括创建基类ServletBase来统一处理doGet()和doPost()方法。

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

上一篇:jsp空白页面

HTTP method GET is not supported by this URL

2006年11月15日(星期三) 22点46分 作者: powerpaw 天气: 心情: 非常差

问题描述:在访问一个Servlet时抛出HTTP method GET is not supported by this URL或者HTTP method GET is not supported by this URL   

好久没找到原因是因为Servlet继承了HttpServlet且定义了doPost() 或doGet()方法 ,自认为没什么错误

问题原因:只定义了一个doPost()或doGet()方法

解决方法:servlet实现这两个方法,这样代码看起来很多.可以将定义一个servlet基类,同时实现这两上方法,在两个方法内都调用一个abstract修饰的方法,每一个servlet都继承该基类,并实现abstract方法

基类:

 

public abstract class ServletBase extends HttpServlet {

    //some other  code here...

    public final void doGet(HttpServletRequest request, HttpServletResponse response)
               throws javax.servlet.ServletException, java.io.IOException {
          defaultProcess(request, response);
     }

     public final void doPost(HttpServletRequest request, HttpServletResponse response)
               throws javax.servlet.ServletException, java.io.IOException {
          defaultProcess(request, response);
     }

    public void defaultProcess(HttpServletRequest request, HttpServletResponse response) {

        try{
                    returnPage = perform(request, response);
           } catch .....

       }//deXXXXtProcess method

     public abstract String perform(HttpServletRequest request, HttpServletResponse response)
               throws Exception;

}

这样每个servlet都继承该方法,都要实现自己的perform方法,perform()方法返回字符串,为跳转页面的路径,这样更方便调试(当然你也可以定义该方法返回为void)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值