Servlet继承关系--尚硅谷24

Servlet继承关系(405错误原因)

1.servlet继承关系(重点查看的是服务方法service()方法

java.servlet.Servlet接口:
 	java.servlet.GenericServlet抽象子类:
		java.servlet.http.HttpServlet抽象子类

2.相关方法

**javax.servlet.Servlet接口:
    void init(config) --初始化方法
    void service(request,response) --服务方法
    void destroy() --销毁方法


javax.servlet.GenericService抽象类
    void service(request,response) --仍是抽象类


java.servlet.http.HttpServlet抽象子类
    void service(request,response) --不是抽象类
    ①.String method = req.getmethod(); --获取请求的方式
    ②.各种if判断,根据请求方式不同,决定调用不同的do方法
            if (method.equals("GET")) {
                    this.doGet(req, resp);
            } else if (method.equals("HEAD")) {
                this.doHead(req, resp);
            } else if (method.equals("POST")) {
                this.doPost(req, resp);
            } else if (method.equals("PUT")) {
                this.doPut(req, resp);
            }
            ......

    ③.在Http中do方法都差不多
    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(405, msg);
            } else {
                resp.sendError(400, msg);
            }

        }

3.小结:

1)继承关系:HttpServlet–>GenericServlet -->Servlet

2)Servlet中的核心方法
init()
service()
destroy()

3)服务方法
请求过来时,
service方法自动响应(其实时tomcat容器调用的)
HTTPServlet会去分析请求方式:到底是get,post,head还是delete等等(共8种)
分析后决定调用那个do开头方法
在HttpServlet中这些do方法认都是405实现风格-要我们子类去实现对应方法,否则认报405错误
4)在新建servlet时,才考虑请求方法,从而决定重写哪个do方法

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...