标签:HTTP String 对象 请求 响应 ServletContext 服务器 Response 客户端
HTTP协议:响应消息、Response对象、ServletContext对象
HTTP协议:
-
请求消息:客户端发送给服务器端的数据
-
数据格式:
-
请求行
-
请求头
-
请求空行
-
请求体
-
-
-
响应消息:服务器端发送给客户端的数据
-
数据格式:
-
响应行
-
组成:协议/版本 响应状态码 状态码描述
-
响应状态码:服务器告诉客户端浏览器请求和响应的一个状态
-
状态码都是3位数字
-
分类:
-
1xx:服务器接收客户端消息,但是没有接收成功,等待一段时间后,发送1xx状态码
-
2xx:成功。代表:200
-
3xx:重定向。代表:302(重定向),304(访问缓存)
-
4xx:客户端错误
-
代表:
-
404:请求路径没有对应的资源
-
405:请求方式没有对应的doxxx方法
-
-
-
5xx:服务器端错误。代表:500:服务器内部出现异常
-
-
-
-
响应头
-
格式:头名称:值
-
常见的响应头:
-
Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
-
Content-disposition:服务器告诉客户端以什么格式打开响应体数据
-
值:
-
in-line:默认值,在当前页面内打开
-
attachment;filename:以附件形式打开响应体。文件下载
-
-
-
-
-
响应空行
-
响应体:传输的数据
-
-
Response对象
-
功能:设置相应消息
-
设置响应行
-
格式:协议/版本 响应状态码 状态码描述
-
设置状态码:setStatus(int sc)
-
-
设置响应头:setHeader(String name,String value)
-
设置响应体:
-
步骤:
-
获取输出流
-
字符输出流:PrintWriter getWriter()
-
字节输出流:ServletOutputStream getOutputStream()
-
-
使用输出流,将数据输出到客户端浏览器
-
-
-
重定向的特点:redirect
-
地址栏发生变化
-
重定向可以访问其他站点(服务器)的资源
-
重定向是两次请求。不能使用request对象来共享数据
-
-
转发的特点:forward
-
转发地址栏路径不变
-
转发只能访问当前服务器下的资源
-
转发是一次请求,可以使用request对象来共享数据
-
-
路径分类:
-
相对路径:通过相对路径不可以确定唯一资源
-
不以/开头,以.开头路径
-
规则:找到访问当前资源和目标资源之间的相对位置关系
-
./:当前目录
-
../:后退一级目录
-
-
-
绝对路径:通过绝对路径可以确定唯一资源
-
以/开头的路径
-
规则:判断定义的路径是给谁用的?判断请求将来从哪发出
-
给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
-
建议虚拟目录动态获取:request.getContextPath()
-
-
给服务器使用:不需要加虚拟目录
-
-
-
-
ServletContext对象
-
概念:代表整个web应用,可以和程序的容器(服务器)来通信
-
获取:
-
通过request对象获取
-
request.getServletContext();
-
-
通过HttpServlet获取
-
this.getServletContext();
-
-
-
功能:
-
获取MIME类型:
-
MIME类型:在互联网通信过程中定义的一种文件数据类型
-
格式:大类型/小类型
-
-
获取:String getMimeType(String file)
-
-
域对象:共享数据
-
setAttribute(String name,Object value)
-
getAttribute(String name)
-
removeAttribute(String name)
-
ServletContext对象范围:所有用户请求的数据
-
-
获取文件的真实(服务器)路径
-
方法:String getRealPath(String path)
-
-
标签:HTTP,String,对象,请求,响应,ServletContext,服务器,Response,客户端 来源: https://www.cnblogs.com/aoyouJavadeDashu/p/16537294.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。