ServLet 开发
Web 开发
- Servlet 开发
- 使用 IDEA 创建 Servlet 的流程
准备阶段 + 开发阶段 @开发环境
构建阶段 + 部署阶段 @构建环境
运行阶段 @运行环境 - Servlet 标准规定了 环境运行上,的目录结构
- Tomcat 在 Servlet 运行过程中所起的作用
- HTTP 服务器 Servlet 容器
把浏览器发送的 HTTP 请求,进行解析, 并按照 Servlet 标准,封装成 HttpServlRequest 对象 ,根据指定规则 —— 找到对应的 Servlet 类中的方法进行处理,把HttpServletResponse 对象,重新构建成HTTP 响应,并发送给浏览器
我的理解就是 HTTP服务器遵循HTTP协议,Tomcat遵循Servlet标准就是Servlet容器
- HTTP 服务器 Servlet 容器
- Servlet 标准中常见类的常见方法
- HttpServletRequest 中的常见方法
HTTP请求的封装 —— 获取 HTTP 请求中的信息
HTTP 请求中主要有:方法、urll、headers、body、paramters - HttpServletResponse 中常见的方法
Http响应的封装 —— 填充HTTP响应中的信息
状态码、Headers、Body
- HttpServletRequest 中的常见方法
- 使用 IDEA 创建 Servlet 的流程
借助Servlet中的API 认识一下
- 状态码:关于重定向的状态码(302/307/……)
- Cookie 和 Session (重点)
关于HTTP重定向
通过标准中的状态 通知浏览器 重新发起HTTP请求。一般用于资源被移到新的位置、用户管理
博客管理:发布文章 需要 用户先登录
如果用户没有登陆,就进入到发布文章页面,常见的方法重定向到用户登录页面
分为两大类 永久重定向 与 临时重定向
HTTP状态总结
一、五大类 1XX 、 2XX、3XX、4XX、5XX
二、常见的
200 一切正常
301、302、303、307 重定向相关,配合 Location 使用
404 请求的资源不存在了
500 代码中出现了异常、服务器内部错误
Cookie 和 Session(重点)
前置知识 1:
HTTP 协议是一种无状态协议(无记忆性)
思考 :如何解决 HTTP 协议无记忆性的问题?
收到一个请求,请求中缺少表示你身份的信息
但是引申出一个问题,身份信息在URL中可以随意修改,并不安全,身份无法确定是否是真实的
所以 HTTP 协议规定了一种标准化的方式 在请求中携带用户信息
把信息携带在Header 中 —— Cookie
但是并未解决是否你就是马冬梅
值得一提的是 请求是由浏览器发起,Cookie 中携带的信息不是由浏览器决定的,而是由服务器决定的。
使用 Cookie 机制 还遗留一个问题 —— 账号可以泄露和伪造
因为 Cookie 信息是交给客户端保存的,会泄露 会伪造
所以不适合把全部信息全部放到Cookie中
这时候就需要 Session 机制来弥补 Cookie 机制的缺陷
平时使用方式多是 Cookie + Session 配合使用。 独立起来,分别都可以工作,但配合工作是最好状态
通过使用一个加密柜(Session) 来保持安全
Cookie 想象成一个对象
/set-cookie/by/header 种cookie 的时候没有指定过 path 信息, 所以 , 默认的path 信息是 /set-cookie/by/
浏览器再发起请求时,只有请求/set-cookie/by/… 的资源时 ,才需要带着这个cookie
访问别的url不会带
Cookie 信息被种到浏览器中 —— 浏览器负责保存 Cookie 信息
Session 信息保存在 Session 服务器中,Tomcat 的默认 Session 策略 时保存在 内存中的(Map)
所以 重启Tomcat , Session 信息会丢失,Cookie 信息还在
重启浏览器 ,Cookie 信息会丢失 备注:在没有添加过期时间的情况下