做网站需要物流信息端口,医院网站建设公司价格,屏蔽网页 的网站备案,哈尔滨做企业网站文章目录 一、继承关系二、相关方法 一、继承关系
Servlet接口下有一个GenericServlet抽象类。在GenericServlet下有一个子类HttpServlet#xff0c;它是基于http协议。
继承关系 javax.servlet.Servlet接口 javax.GenericServlet抽象类 javax.servlet.http.HttpServ… 文章目录 一、继承关系二、相关方法 一、继承关系
Servlet接口下有一个GenericServlet抽象类。在GenericServlet下有一个子类HttpServlet它是基于http协议。
继承关系 javax.servlet.Servlet接口 javax.GenericServlet抽象类 javax.servlet.http.HttpServlet二、相关方法
javax.servlet.Servlet接口 void init(config) - 初始方法 void service(request, response) - 服务方法 当发请求过来时service方法会被自动调用。其实是tomcat容器调用的 void destroy() - 销毁方法
javax.GenericServlet抽象类中service方法仍然是抽象的但init()和destroy()方法已经实现 javax.servlet.http.HttpServlet实现了service方法
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String method req.getMethod(); // 获取请求的方式long lastModified;// 各种if判断根据请求方式不同决定去调用不同的do方法// 在HttpServlet中这些do方法默认都是405的实现风格-要我们子类去实现对应的方法否则默认会报405错误// 因此我们在新建Servlet时我们才会去考虑请求方法从而决定重写哪个do方法if (method.equals(GET)) { // 如果发过来的是GET请求...} else if (method.equals(HEAD)) {lastModified this.getLastModified(req);this.maybeSetLastModified(resp, lastModified);this.doHead(req, resp);} else if (method.equals(POST)) {this.doPost(req, resp);} else if (method.equals(PUT)) {this.doPut(req, resp);} else if (method.equals(DELETE)) {this.doDelete(req, resp);} else if (method.equals(OPTIONS)) {this.doOptions(req, resp);} else if (method.equals(TRACE)) {this.doTrace(req, resp);} else {String errMsg lStrings.getString(http.method_not_implemented);Object[] errArgs new Object[]{method};errMsg MessageFormat.format(errMsg, errArgs);resp.sendError(501, errMsg);}}查看doPost方法如果我们继承HttpServlet的类没有重写HttpServlet的doPost请求它就会调用父类HttpServlet的doPost方法直接报405错。
在HttpServlet这个抽象类中do方法基本都差不多。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String protocol req.getProtocol(); // 获取http协议String msg lStrings.getString(http.method_post_not_supported); // 它会根据http.method_post_not_supported字符串去找另一个字符串所对应的value值就是消息if (protocol.endsWith(1.1)) {resp.sendError(405, msg); // 报405错然后把msg显示出来} else {resp.sendError(400, msg);}}