Java学习笔记(十九):request

写在前面:

request请求原理:tomcat创建request、response对象

请求行、头、体
请求行getRequestURI             (短)
 getContextPath()           虚拟路径
请求头getHeader(头名称)       
请求体getReader / getInputStream
编码
setCharacterEncoding
获取请求参数

getParameter(名)

getParameterMap()
getParameterValues(名)
getParameterNames()
转发/共享
转发getRequestDispatcher(资源路径)
 dispatcher.forward(request,response)
共享数据setAttribute
 getAttribute
 removeAttribute
BeanUtils
BeanUtils.populate(对象, map)
setProperty
getProperty

 


1.  原理

request请求原理

tomcat首先根据url,利用反射创建servlet类对象

tomcat创建request、response对象(request中封装了请求消息的数据)

我们可以获取request中的数据,设置response中的数据

tomcat服务器会将response中的内容设置成响应消息数据,给浏览器发出响应消息

 

request集成体系结构

ServletRequest(接口)-----HttpServletRequest(子接口)-----RequestFacade(tomcat下的实现类)

 

2. request功能---获取请求消息数据

请求行

getMethod()   请求方式

getProtocol()   协议及版本

getRemoteAddr()   ip


getQueryString()   请求参数(xx=xx&xx=xx)


* getContextPath()   虚拟目录(一般为项目名,ip:port/虚拟目录/资源路径)

getServletPath()   资源路径


* getRequestURI()   (短:/虚拟目录/资源路径)

getRequestURL()   (长:协议://ip:port/虚拟目录/资源路径)

 

请求头

* getHeader(头名称)   不区分大小写

getHeaderNames()     返回值:Enumeration<String>,看作迭代器,获取所有的头名称

 

请求体

获取流对象,再从流中拿数据

getReader()

getInputStream()

 

获取请求参数的通用方法(get/post)

getParameter(参数名)

getParameterValues(参数名)   参数值的数组,多用于复选框

getParameterMap()     <参数名, 参数值>

getParameterNames()    参数名的枚举(看作迭代)

 

中文乱码问题

设置流的编码:request.setCharacterEncoding("utf-8");

tomcat8已经将get方式的乱码问题解决了,但是post的还没有解决

 

3. 请求转发

一种服务器内部的资源跳转方式

 

特点:

地址栏不变

只能访问当前服务器内部的资源

只发送一份请求,多个资源使用同一份请求

代码:

获取请求转发器对象:getRequestDispatcher(资源路径)

转发:forward(request,response)

 

4. request的数据共享

request的域(作用范围):一次请求

一般用于在转发中共享数据

 

方法:

setAttribute(名, 值)     存数据(到request域中)

getAttribute(名)           取数据

removeAttribute(名)    删除数据

 

5. BeanUtils工具类

用到工具包:commons-beanutils-1.8.0.jar

 

方法:

setProperty(对象, 属性名, 属性值)

getProperty(对象, 属性名)

populate(对象, map)    将map封装到对象中(k属性名,v属性值)

 

JavaBean

标准Java类,一般放在domain包下

要求:类被public修饰,提供空参构造起,成员变量用private修饰,提供public的setter、getter方法

功能:封装数据

属性:getter、setter截取后的产物(getName---Name---name属性)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值