上周上课刚刚到MVC的部分,老师让用Servlet实现一个MVC。在使用IDEA写Servlet的过程中碰到了许多问题。

一、HttpServlst包没有导入

在IDEA默认的web项目中,Servlet-api这个包并不属于JavaSE的范围,所以HttpServlet并不在自动导入的范围中,所以这里我们需要自己导入。

1.项目右键选择Open Module Settings

2.选择Library,点加号

3.选择自己tomcat/lib下的api-servlet.jar

4.完成

二、方法自动生成

这里HelloServlet类需要继承HttpServlet,doGet和doPost方法使用IDEA自动生成.

HelloServlet类

package servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

//继承HttpServlet
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        super.doGet(request, response);
        System.out.println("处理get请求");
        PrintWriter out=response.getWriter();
        out.println("<b>Hello Servlet</b> ");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        super.doPost(request, response);
    }
}

运行的时候报错了,说是doGet不支持,懵逼ing

回去重新检查了doGet方法,发现IDEA在生成doGet方法的时候多加了一行

super.doGet(request, response);

因为idea默认生成的super调用,删除了就可以了!

三、参考资料

1.HTTP method GET is not supported by this URL