学习笔记-http协议、request

HTTP


* 概念:Hyper Text Transfer Protocol 超文本传输协议
	* 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
	* 特点:
		1.基于TCP/IP的高级协议
		2.默认端口号:80 
		3.基于请求响应模型的,一次请求对应一次响应
		4.无状态的:每次请求之间相互独立,不能交互数据
* 请求消息数据格式
	* 请求行
		* 请求方式  请求url 请求协议/版本
		*  GET / login.html HTTP/1.1
	* 请求头
		* 请求头名称:请求头值
		* 常见的请求头:
			1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息(可以在服务器端获取该头的信息,解决浏览器的兼容性问题
			2. Referer:http://localhost/login.html(告诉服务器我从哪里来;作用:防盗链、统计工作
	* 请求空行
	* 请求体(正文)
		* username:zhangsan
* 响应消息数据格式

request


* request对象和response对象的原理
	1.request和response对象是由服务器创建的
	2.request对象是来获取请求消息,response对象来设置响应消息
* request功能:
	1.获取请求消息数据
		获取请求方式:String getMethod()
		获取虚拟目录:String getContextPath()
		获取Servlet路径:String getServletPath()
		获取get方式请求参数:String getQueryString()
		获取请求URI:String getRequestURI()  /  StringBuffer getRequestRUL()
		获取协议及版本:String getProtocol()
		获取客户机ip地址:String getRemoteAddr()
		2. 获取亲求头的数据
			通过请求头的名称获取请求头的值:String getHeader(String name) 
			获取所有的请求头名称:Enumeration<String> getHeaderNames()
		3. 获取请求体数据
			获取字符输入流,只能操作字符数据:BufferedReader getReader()
			获取字节输入流,可以操作所有类型数据:ServletInputStream getInputStream()
	2.其他功能
		1.获取请求参数通用方式
			* Strng getParameter(String name) 根据参数名称获取参数值
			 * Strng[] getparametervalues(String name) 根据参数名称获取参数数组
			 * Enumeration<String> getParameterNames():获取所有请求的参数名称
			 * Map<String,String[]>getParameterMap:获取所有参数的map集合
		2.请求转发
			* 一种在服务器内部的资源跳转方式
			* 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
			* 使用RequestDispatcher对象来进行转发:forward(servlerRequest request,ServletResponse response)
		2.共享数据
			* 域对象:一个有作用范围的对象,可以在范围内共享数据
			* request域:代表一次请求的范围,一般用于请求转发的多个资源种共享数据
			* 方法
				* 存储数据:setAttribute(String name,Object obj)
				* 通过键获取值:Object geAttitude(String name)
				* 通过键移除键值对:removeAttribute(String name)
		4.获取ServletContext
			* ServletContext getServletContext()
		5.中文乱码问题
			* request.setCharacterEncoding("utf-8")
* request对象继承体系结构
	ServletRequest  -- 接口 继承
	HttpServletRequest  -- 接口 实现
    org.apache.catalina.connector.RequestFacade 类(tomcat)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值