【Java后端】Servlet & HTTP协议(学习笔记)
2023-12-17 05:08:15
Servlet
一、Servlet概述
Servlet:server applet 服务器的小程序
Servlet是一个定义了Java类被浏览器访问到(tomcat识别)的规则接口
二、注解配置Servlet
- 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
- 定义一个类,实现Servlet接口
- 复写方法
- 在类上使用@WebServlet注解,进行配置:
@WebServlet("资源路径")
一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"})
路径定义规则:
/xxx
:路径/xxx/xxx
:多层路径*.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 -- 抽象类
- GenericServlet:只将service()方法作为抽象
- HttpServlet:对http协议的一种封装,简化操作
- 定义类继承
HttpServlet
- 复写
doGet/doPost
方法
- 定义类继承
HTTP协议
一、HTTP
1、HTTP概述
HTTP:Hyper Text Transfer Protocol 超文本传输协议
2、HTTP特点
- 基于TCP/IP的高级协议
- 默认端口号:80
- 基于请求/响应模型的:一次请求对应一次响应
- 无状态的:每次请求之间相互独立,不能交互数据
3、HTTP的历史版本
1.0:每一次请求响应都会建立新的连接
1.1:复用连接
二、请求消息
1、请求方式
1)GET
- 参数在请求行
- url长度有限制
- 不太安全
2)POST
- 参数在请求体
- url长度没有限制
- 相对安全
2、请求格式
- 请求行:请求方式 请求url 请求协议/版本
- 请求头:客户端浏览器告诉服务器一些信息
- User-Agent:浏览器版本信息(可以在服务器端获取该头的信息,解决浏览器的兼容性问题)
- Referer:请求来源(防盗链、统计信息)
- 请求空行:用于分割POST请求的请求头,和请求体的。
- 请求体:封装POST请求消息的请求参数的
三、响应消息
1、响应行
格式:协议/版本 响应状态码 状态码描述
响应状态码:服务器给客户端的回信
- 1xx:消息没接收完,服务器急了
- 2xx:成功辣
- 3xx:重定向
- 302 重定向
- 304 访问缓存
- 4xx:客户端请求 错误
- 404 请求路径没有资源
- 405 请求方式没有对应的方法
- 5xx:服务器端错误
- 500 服务器内部异常
2、响应头
格式:头名称: 值
Content-Type:响应体数据格式及编码格式
Content- disposition:响应体格式
- in-line:默认,当前页面内
- attachment,filename=xxx:附件模式打开(下载)
3、响应空行
分隔响应头与响应体
4、响应体:<html>
标签
html内容
文章来源:https://blog.csdn.net/wmh1024/article/details/134931069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!