HTTP协议核心内容、Servlet开发步骤
1. HTTP 协议核心内容
协议:两个设备进行数据交换的约定。
HTTP协议:超文本(字符/音频/视频/图片)传输协议,基于TCP协议
。
1.1 HTTP 请求报文(图)
HTTP 请求数据
- 抓包中核心内容:
HTTP 请求报文
的原始细节:
1.2 HTTP 响应报文(图)
HTTP 响应数据
- 抓包中的核心内容:
HTTP 响应报文
的原始细节:
1.3 HTTP 请求-响应执行流程
- 发起请求(
GET
/POST
) - 域名解析
本地域名解析(C:\Windows\System32\drivers\etc\hosts)
互联网域名解析(DNS) - 执行请求
- 响应请求
1.4 GET 与 POST 请求的区别
● GET 只能传递1kb以下
的数据;POST 可以传递大数据
● GET 请求参数会直接拼接到Request URL上
(&);POST 请求参数是在请求正文中,更安全
● GET 主要用于获取/查询
数据;POST 主要用于更新
数据/上传文件
1.5 常用响应状态码
200
:服务器响应成功
302
:页面重定向
304
:页面无变化,无需重新请求服务器
404
:没有对应的服务器资源
500
:服务器内部错误
2. Servlet 开发步骤
2.1 Servlet 核心作用
- 接收客户端浏览器请求,完成操作任务
- 动态生成网页(页面数据可变)
- 将包含操作结果的动态网页响应给客户端浏览器
2.2 Servlet 创建项目目录(参考)
Web项目参考目录:
|--webapps(存放所有网站)
|--MyServlet(网站)
|--WEB_INF(核心内容)
|--classes/*.class(.class文件)
|--lib/*.jar(网站需要的jar包)
|--web.xml(配置文件)
|--css/*.css(样式文件)
|--img/*.jpg/png/bmg/gif(图片资源)
|--js/*.js(脚本文件)
|--*.html(静态页面)
|--XXXServlet
IDEA中Web项目参考目录:
2.3 Servlet 的jar包依赖库配置
IDEA 的External Library
中没有Tomcat包( jsp-api.jar
& servlet-api.jar
)时:
Alt+1 切到项目窗口 >> F4 打开Module Setting >> 选择Dependencies >> 增加Tomcat的库
2.4 Servlet 基本开发步骤
① 创建参考目录结构
② 三种方式实现 Servlet 处理 浏览器网页到 Tomcat服务器端 的请求和响应
- 方式一:
实现javax.servlet.Servlet
接口,重写 5 个主要方法,处理请求的方法是 service( ) - 方式二:
继承javax.servlet.GenericServlet
抽象类,重写需要的方法,处理请求的方法是 service( ) - 方式三:【最优】
继承javax.servlet.http.HttpServlet
抽象类,默认重写了 service( ) 方法,且针对http协议优化,需自行重写 doGet( ) 和 doPost( ) 方法处理请求
③ 在文件 WEB_INF/web.xml 中新增如下内容:
<!--创建servlet标签-->
<servlet>
<!--给指定的servlet类起一个名字-->
<servlet-name>demo01</servlet-name>
<!--servlet类的全限定路径-->
<servlet-class>com.demo.t1.servlet.Demo01</servlet-class>
</servlet>
<!--创建servlet映射标签-->
<servlet-mapping>
<!--映射到哪个servlet,与上面一致-->
<servlet-name>demo01</servlet-name>
<!--客户端访问路径 localhost:8080/项目名称/demo-->
<url-pattern>/demo</url-pattern>
</servlet-mapping>
web项目中此时会有 /demo 的访问资源,访问方式:
http://localhost:8080/projname
/demo
- projname:此时为IDEA中当前项目名称
- demo:为<url-pattern>标签中的内容