Http tomcat servlet review
http就是超文本传输协议 它是基于tcp可靠连接的(三次握手) 属于应用层协议 下层为运输层
http请求数据格式
请求行
请求头
请求体
http响应数据格式
响应体一般是网页啊,没有tomcat是要人为把服务器中网页内容输入到用户浏览器中
并被浏览器解析,tomcat帮助我们干了这件事,还有很多事情它也帮我们做
WEB服务器(水杯)
其中之一tomcat 又称为servlet容器 web容器
IDEA中我们如何创tomcat项目?
1.使用骨架
servlet 一个接口 一种动态资源
Servlet由web服务器创建,Servlet方法由web服务器调用
每次发送请求,调用service()方法
Servlet的一个快速入门:
比较重要Servlet体系结构
根接口Servlet 是jdk扩展 要引入jar包或者依赖
子实现类HttpServlet中Service方法源码如下
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); long lastModified; if (method.equals("GET")) { lastModified = this.getLastModified(req); if (lastModified == -1L) { this.doGet(req, resp); } else { long ifModifiedSince = req.getDateHeader("If-Modified-Since"); if (ifModifiedSince < lastModified) { this.maybeSetLastModified(resp, lastModified); this.doGet(req, resp); } else { resp.setStatus(304); } } } 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); } }
我们自己写的类继承httpServlet,重写了get post方法
那么根据规则,Servlet容器帮我们创建我们自定义的Servlet对象,每次请求来,我们调通过这个Servlet对象调用Service()方法(继承关系想上找),那当然,Service()方法中的doget dopost就是我们重写的方法 动态绑定