协议,tomcat,servlet
协议
理解http协议之前先看看udp和tcp协议
udp
传输层协议
UDP只管发送数据,不在乎数据是否已经发送到(不安全),因此UPD传输速度比较快,通常用于一些比较需要实时性的连接,比如发微信消息,微信语音。
tcp
传输层协议
TCP是一种可靠的连接,会保证每一条数据都传输到位(安全),想要每条数据都不落的展现并且按一定的顺序就选使用tcp。
http
应用层协议
概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
HTTP 协议特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求响应都是独立的。
- 缺点:多次请求间不能共享数据。(Java中使用会话技术Cookie、Session来解决这个问题)
- 优点:速度快
tomcat
- 概念: Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
- JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
- Tomcat 也被称为 Web容器、Servlet容器。Servlet 需要依赖于 Tomcat才能运行
官网:https://tomcat.apache.org/
servlet
- Servlet 是 Java提供的一门动态web资源开发技术
- Servlet 是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet
servlet执行流程
Servlet 由谁创建?Servlet方法由谁调用?
Servlet由web服务器创建,Servlet方法由web服务器调用。
服务器怎么知道Servlet中一定有service方法?
因为我们自定义的Servlet,必须实现Servlet接口并复写其方法,而Servlet接口中有service方法
servlet生命周期
我们知道一个对象的生命周期指一个对象从被创建到被销毁的整个过程,
Servlet运行在Servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段:
- 加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
- 初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次
- 请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。
- 服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收
servlet体系结构
HTTP 协议中,GET 和 POST 请求方式的数据格式不一样,将来要想在Servlet中处理请求参数,得在service方法中判断请求方式,并且根据请求方式的不同,分别进行处理,所以当 我们使用Servlet开发时一般不是直接实现servlet接口,而是继承HttpServlet
Servlet urlPattern配置
servlet想要被访问必须要配置其访问路径(urlPattern)
-
一个servlet可以配置多个urlPattern
-
urlPattern 配置规则
1 精确匹配
2 目录匹配
3扩展名匹配
4任意匹配
Servlet 从3.0版本后开始支持使用注解配置,3.0版本前只支持 XML 配置文件的配置方式
步骤:
3. 编写 Servlet类
4. 在 web.xml中配置该Servlet