Servlet 入门 和 Tomcat

01.HTTP

  1. HTTP(超文本传输协议):

  2. 规范服务器和浏览器的数据交互格式

  3. 特点是简单、快捷、灵活。

    • 无连接:每次连接都只处理一个请求,处理完成之后关闭。
    • HTTP 1.1 版本之后支持可连续连接(完成一次请求后会隔一段时间再断开)。
    • 无状态:第二次的数据与第一次的数据无关,对事物处理没有记忆能力,若后续需要处理前面的信息,则必须重传。
    • 采用键值对的方式处理数据。
  4. 请求方法:GET 、HEAD 、 POST

  5. HTTP 客户端发起请求与服务器响应的过程:

    • 客户端和服务器建立连接
    • 客户端发起请求
    • 服务器处理请求并响应
    • 关闭连接
  6. 请求格式:

GET:

  • 请求头:请求方式(GET)、请求地址(URL)和 HTTP 版本
  • 请求行:消息报头,说明客户端使用的一些附加信息(次要的信息)。
  • 空行 :请求行与请求实体之间必须的
  • 请求实体(GET方式没有请求实体,请求的数据放拼接在 URL?后面,这样数据不安全,并且地址栏存放的数据有限)

POST:

  • 请求头:请求方式(POST)、请求地址(URL)和 HTTP 版本
  • 请求行:消息报头,说明客户端使用的一些附加信息(次要的信息)。
  • 空行:请求行与请求实体之间必须的
  • 请求主体(表单的 name 等,数据安全,地址栏不可见)

请求的方式由网页的源码决定。
HEAD 类似于 GET,返回响应重没有请求头

  1. 响应的格式
  • 响应头:HTTP 版本、状态码(200)、状态消息(ok)
  • 响应行:消息报头,客户端使用的附加消息
  • 空行:
  • 正文,服务器返回给浏览器的信息
    常见的状态码:

Servlet 入门 和 Tomcat

02 Tomcat 的使用

服务器的概念和作用:

问题:
学习了java 编程之后,java 代码的一个很重要的作用就是进行数据的处理,但是目前来说我们运行编写的代码,只有一次性,也就是运行完毕后,如果需要再次运行则需要再次手动启动代码的执行。但是我们无法知道用户会何时发送请求,也就无法决定我们编写的 java 代码应该什么时候启动运行。
解决:

那么根据java的网络编内容,我们是不是可以使用代码编写一个容器(对象)呢?该容器可以根据用户的请求来启动并运行我们编写的数据逻辑代码。
答案是可以的。
实现:
服务器
解释:
所谓服务器其实就是代码编写的一个可以根据用户请求实时的调用执行对应的逻辑代码的一一个容器。在普通用户开来就是一个安装程序。我们只需要将服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放到服务器的指定位置,启动服务器,那么服务器就自动的会根据接收到请求调用并执行对象的逻辑代码进行处理。

tomcat 下载位置:https://tomcat.apache.org/download-70.cgi
安装:
下载成功后为压缩包文件,解压即可使用注意:尽量不要解压在中文目录中。
目录结构:
![在这里插入图片描述](https://img-blog.****img.cn/20200724200757253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MTg4MTI3,size_16,color_FFFFFF,t_70

Servlet 入门 和 TomcatServlet 入门 和 Tomcat
Servlet 入门 和 Tomcat栏中输入 localhost:8080/ 如果出现tomcat广告页安装成功
Servlet 入门 和 Tomcat

如果点击启动出现闪退的问题,检查 JDK 环境配置是否正确。重启 Tomcat 即可。

03 servlet 入门

在学习了服务器并成功安装后,我们知道当浏览器发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理。逻辑代码是由程序员自己编写然后放进服务器进行运行,其实就是Servlet程序。
将 web 工程放在 Tomcat 下的 webapps 下,就可以通过 域名访问了。

将 Tomcat 整合到 IDEA 中:

Servlet 入门 和 Tomcat创建一个 web 工程
Servlet 入门 和 TomcatServlet 入门 和 Tomcat在 web 目录下,创建一个 lib 文件夹,用来存放第三方 jar 包。
Servlet 入门 和 Tomcat
Servlet 入门 和 Tomcat让 Tomcat 在 IDEA 跑起来

点击 Run 就可以了。
创建一个类,当访问 Tomcat 服务器时,就会通过配置文件找到 servlet 程序去处理请求,然后做出响应。
Servlet 入门 和 Tomcat
Servlet 入门 和 Tomcat再点击 Run 跑起来。
当浏览器访问 /hello 工程时,配置文件就会找到对应的配置文件中的servlet程序的别名,进而找到servlet真是路径去执行。
Servlet 入门 和 Tomcat

Servlet 入门 和 Tomcat

问题:
服务器|在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理。但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道该怎么调用并调用哪个类和哪个方法来进行请求处理。
解决:
程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写,浏览器按照指定的规则进行发送请求,那么服务器就可以调用并执行响应的逻辑代码进行请求处理了。举个栗子:图书馆借书
实现:
Servlet 技术
概念:
狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。
Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器。

使用:

  1. 创建普通的 java 类并继承 HttpServlet
  2. 覆写service方法,请求一来 Tomcat ,来调用 service 方法。
  3. 在 service 方法中书写逻辑代码即可
  4. 在webRoot 下的 WEB-INF 文件夹下的 web.xml,文件中配置 servlet 。

运行流程:
url : http://localhost:8080/project/my2
组成: 服务器地址:端口号/webapps 下的文件夹的名称/要执行的 url-pattern
localhost:8080/project/com.sjmp.servlet.MyServlet2 不安全,因此使用别名。
浏览器发送请求到服务器,服务器根据请求URL地址中的URI信息在webapps目录下找到对应的项目文件夹,然后在web.xml 中检索对应的servlet,找到后调用并执行Servlet 。