【Java后端】Servlet & HTTP协议(学习笔记)

2023-12-17 05:08:15

Servlet

一、Servlet概述

Servlet:server applet 服务器的小程序

Servlet是一个定义了Java类被浏览器访问到(tomcat识别)的规则接口

二、注解配置Servlet

  1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
  2. 定义一个类,实现Servlet接口
  3. 复写方法
  4. 在类上使用@WebServlet注解,进行配置:@WebServlet("资源路径")

一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"})

路径定义规则:

  1. /xxx:路径
  2. /xxx/xxx:多层路径
  3. *.do:扩展名
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
    String name() default "";//相当于<Servlet-name>
    String[] value() default {};//代表urlPatterns()属性配置
    String[] urlPatterns() default {};//相当于<url-pattern>
    int loadOnStartup() default -1;//相当于<load-on-startup>
    WebInitParam[] initParams() default {};
    boolean asyncSupported() default false;
    String smallIcon() default "";
    String largeIcon() default "";
    String description() default "";
    String displayName() default "";
}

三、Servlet体系结构

Servlet -- 接口
   |
GenericServlet -- 抽象类
   |
HttpServlet  -- 抽象类
  1. GenericServlet:只将service()方法作为抽象
  2. HttpServlet:对http协议的一种封装,简化操作
    1. 定义类继承HttpServlet
    2. 复写doGet/doPost方法

HTTP协议

一、HTTP

1、HTTP概述

HTTP:Hyper Text Transfer Protocol 超文本传输协议

2、HTTP特点

  1. 基于TCP/IP的高级协议
  2. 默认端口号:80
  3. 基于请求/响应模型的:一次请求对应一次响应
  4. 无状态的:每次请求之间相互独立,不能交互数据

3、HTTP的历史版本

1.0:每一次请求响应都会建立新的连接

1.1:复用连接

二、请求消息

1、请求方式

1)GET
  1. 参数在请求行
  2. url长度有限制
  3. 不太安全
2)POST
  1. 参数在请求体
  2. url长度没有限制
  3. 相对安全

2、请求格式

  1. 请求行:请求方式 请求url 请求协议/版本
  2. 请求头:客户端浏览器告诉服务器一些信息
    1. User-Agent:浏览器版本信息(可以在服务器端获取该头的信息,解决浏览器的兼容性问题)
    2. Referer:请求来源(防盗链、统计信息)
  3. 请求空行:用于分割POST请求的请求头,和请求体的。
  4. 请求体:封装POST请求消息的请求参数的

三、响应消息

1、响应行

格式:协议/版本 响应状态码 状态码描述

响应状态码:服务器给客户端的回信

  1. 1xx:消息没接收完,服务器急了
  2. 2xx:成功辣
  3. 3xx:重定向
    1. 302 重定向
    2. 304 访问缓存
  4. 4xx:客户端请求 错误
    1. 404 请求路径没有资源
    2. 405 请求方式没有对应的方法
  5. 5xx:服务器端错误
    1. 500 服务器内部异常

2、响应头

格式:头名称: 值

Content-Type:响应体数据格式及编码格式

Content- disposition:响应体格式

  1. in-line:默认,当前页面内
  2. attachment,filename=xxx:附件模式打开(下载)

3、响应空行

分隔响应头与响应体

4、响应体:<html>标签

html内容

文章来源:https://blog.csdn.net/wmh1024/article/details/134931069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。