HTTP
1. 请求消息:客户端发送给服务器端的数据
* 数据格式:
1. 请求行
2. 请求头
3. 请求空行
4. 请求体
2. 响应消息
* 数据格式
1. 响应行
* 组成:协议/版本 响应状态码 状态码描述
* 响应状态码:服务器传递给客户端浏览器本次请求和响应的状态
* 状态码都是3位数字
* 分类:
* 1XX:服务器接收客户端消息,但是没有接收完成,等待之后服务器返回1XX状态码
* 2XX:成功。
* 3XX:重定向。302(重定向) 304(访问缓存)
* 4XX:客户端错误
* 404(请求路径没有对应的资源)
* 405(Servlet没有对应的请求方法)
* 5XX:服务器端错误
2. 响应头
* 格式:头名称:值
* 常见的响应头
1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
2. Content-disposition:服务器告诉客户端响应体数据的格式
3. 响应空行
4. 响应体
Response对象
功能:设置相应消息
1. 设置相应行
* 格式:HTTP/1.1 200 ok
* 设置状态码:setStatus(int sc)
2. 设置响应头:setHeader(String name, Sting value)
3. 设置响应体:
* 使用步骤:
1. 获取输出流
* 字符输出流:PrintWriter getWriter()
* 字节输出流:ServletOutputStream getOutputStream()
2. 使用输出流,将数据输出到客户端浏览器
重定向
* 概念:资源跳转的方式
* 重定向的特点:
1. 地址栏发生变化
2. 重定向可以访问其他服务器的资源
3. 重定向是两次请求,所以不能使用request对象来共享数据
* 转发的特点:
1. 地址栏不发生变化
2. 转发不可以访问其他服务器的资源
3. 转发是一次请求,所以能使用request对象来共享数据
路径
* 相对路径
* ./:当前目录
* ../:父级目录
* 绝对路径
* 客户端浏览器需要加虚拟目录
* 服务器使用不需要虚拟目录
ServletContext对象
1. 概念
代表整个web应用,可以和程序的容器(服务器)来通信
2. 获取
* 通过request对象获取
request.getServletContext()
* 通过HttpServlet获取
this.getServletContext()
3. 功能
* 获取MIME类型
* MIME类型:在互联网通信过程中定义的一种文件数据类型
* 格式:大类型/小类型 如 text/html image/jpeg
* 方法:String getMimeType(String file)
* 域对象:共享数据
* setAttribute(String name, Object value)
* Object getAttribute(String name)
* removeAttribute(String name)
* 作用范围:所有用户所有请求的数据
* 获取文件的真实路径
* 方法:String getRealPath(String path)