request对象
在回忆request对象之前,我要先想想get与post两种提交方式的差别
get是明文提交,安全性低,数据量小,速度快,适合查询,审核等功能,不能用做登录,注册等功能,因为很容易泄露密码等信息。
而post是将信息封装到HTML HEADER中,安全性高,数据量大,适合注册,修改等功能。
然后再想想请求重定向与请求转发
请求重定向response.sendRediRect()
是客户端行为,本质上是两次请求,前一次请求对象不会保存,且URL地址会改变
请求转发request.getRequestDispatcher().forward(respose, request)
是服务器行为,保存前一次请求对象,并且URL地址不会改变。
打一个生活中的例子,你到一个公司去办业余,然后公司说这不归他们管,要你到某某地方去,然后你就去了,这就相当于请求重定向,而假如公司说,请等一会,我们去问问,然后公司帮你去某某地方查询办业务,而你在这个公司里面等,这就好比请求转发。不得不说,这太形象了,哈哈.
然后再回头来说requset对象
request对象封装客户端向服务端发送的一次请求,服务端通过它才能了解到客户的需求,然后做出响应。
常用方法
String getParameter(String name)
返回name指定参数的参数值
String getParameterValues(String name)
返回包含参数的所有值的数组
void setAttribute(String , Object);
存储此请求中的属性
object getAttribute(String name)
返回此属性对应的属性值
String getContentType()
得到请求体的MIME类型
String getProtocol()
返回请求用的协议类型及版本号
String getServerName()
返回接受请求的服务器主机名
int getServerPort()
返回服务器接受此请求的端口号
String getCharacterEncoding()
返回字符编码方式
void setCharacterEncoding()
设置请求的字符编码方式
int getContentLength()
返回请求体的长度(字节数)
String getRemoteAddr()
返回发送此请求的客户端的ip地址
String getRealPath(String path)
返回一虚拟路径的真实路径
String request.getContextPath()
返回上下文路径
以上是request对象的一些方法,不得不说是真的多