上一篇:jsp空白页面 |
HTTP method GET is not supported by this URL

问题描述:在访问一个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)