Http请求处理编程
软件152 罗杰
1. Http请求数据的组成:
a) 请求头
i. 客户端信息(浏览器信息,位置信息,cookie数据等)
ii. 请求数据体信息(一下仅为主要的信息)
User-Agent:客户端的类型
Accept:浏览器可接受的MIME类型
Accept-Charset:浏览器支持的字符编码
Accept-Encoding:浏览器知道如何解码的数据编码类型
Accept-Language:浏览器指定的语言 Connection:是否使用持续连接
Content-Length:使用post方法提交是,传递数据的字节数
Cookie:保存的cookie对象
Host:主机和端口
b) 请求体:包含提交到服务器的数据,只有post方法才有请求体,get请求的请求体包含在url中作为请求头的请求体
2. Http请求数据的类型:文本和二进制
注:当请求体数据是二进制的时候需引入解析二进制数据的第三方框架,例如:apache的Common fileupload,cos框架,JspSmartUpload 同时客户端必须以post方式进行提交而且表单中要加入属性:enctype=”multipart/form-data”
3. Http请求对象,实现HttpServletRequest接口(javax.servlet.http.HttpServletRequest)
a)声明周期:每次Http请求时创建,当向应结束时销毁
b)请求对象的方法:
i. 取得请求头的方法:
getHeader():取得指定的请求头字符串类型的内容返回字符串类型
getIntHeader():取得整数类型的指定内容返回整数类型
getDataHeader():取得如期类型的指定请求头中得内容返回日期类型
getHeaderNames();取得所有请求头的列表,返回枚举类型
ii.取得请求体中包含的提交参数数据:
getParameter():取得指定名称的参数数据
getParameterValues():取得指定参数名称的数据数组
getParameterNames():取得所有请求参数的名称
getParameterMap():取得所有请求的参数名和值
getInputStream():取得客户端提交的输入流。
iii.取得其他客户端信息:
getRemoteHost():取得请求客户的主机名
getRemoteAddr():取得请求客户的IP地址
getRemotePort():取得请求客户的端口号
getProtocol():取得请求协议
getContentType():取得请求体内容的类型
getContentLength():取得当请求提为二进制流时请求体的长度,多用于文件上传
iii. 取得服务器端信息:
getServerName():取得服务器的HOST,一般为IP
getServerPort():取得服务器接收端口
iv. 取得cookie
getCookies():取得cookie数组
v.获取请求地址信息:
getRequestURL():取得URL;
getRequestURI():取得URI;
注:url与uri的区别:url指次文件在全球互联网的地址
uri指文件在站点下的地址