Request对象

## 1,request对象和response对象的原理
  • request和response对象是由服务器创建的。我们(程序员)来使用它。
  • request对象是用来获取请求信息,response是用来设置响应消息。

2,request对象的体系结构:

org.apache.catalina.connector.RequestFacade类(tomcat)实现
HttpeServletRequest —接口
继承
ServletRequest --接口

3,request功能

  • 获取请求消息数据
    1,获取请求行数据
    eg:GET /dome/go?name=小白 HTTP/1.1
    方法:
    获取请求方式:String getMethod() //GET
    获取虚拟目录:String getContextPath() //dome
    获取servlet路径:String getServletPath() //go
    获取get方式请求参数:String getQueryString() //name=小白
    获取URI(统一资源标识符):String getRequestURI() // /dome/go
    获取URL(统一资源定位符):String getRequestURL()// http://localhost/dome/go
    获取协议版本:String getProtocol()// HTTP/1.1
    获取客服端的ip地址:String getRemoteAddr()
    2,获取亲求头数据
    方法:
    String getHeader(String name):通过请求头的名称获取请求头的值。
    Enumeration getHeaderNames():获取所有的请求头名称
    3,获取请求体数据
    请求体,只有post请求方式才有请求体,在请求体中封装了post请求的参数
    这些数据以流的方式保存。
    获取步骤:
    获取流对象:
    BufferedReader getReader():获取字符输入流,只能操作字符数据
    ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据
    再从流对象中拿数据。
  • 其他功能:
    1,获取请求参数的通用方式
    String getParameter(String name):根据参数名称获取参数值
    String[] getParameterValues(String name):根据参数名称获取参数值的数组
    Enumeration getParameterNames():获取所有请求参数名称
    Map<String,String[]> getParameterMap():获取所有参数的map集合
    注意:中文乱码问题:
    get方式:tomcat_8已经将get请求方式的乱码问题解决了。
    post方式:中文会乱码。解决:在获取参数钱 ,设置request的编码request.setCharacterEncoding(“utf-8”);
    2,请求转发:一种在服务器内部的跳转方式
    步骤:
    通过request获取请求转发对象:RequestDispatcher getRequestDispatcher(String path)
    使用RequestDispatcher对象进行转发:forward(ServletRequest request,ServletResponse reponse)
    特点:
    浏览器地址路径不发生变化。
    只能转发到当前服务器内部资源。
    转发是一次请求。
    3,共享数据
    *域对象:一个有作用范围的对象,可以在范围内共享数据。
    *request域:代表一次请求的的范围,一般用于请求转发的的多个资源中共享数据。
    *方法:
    存储数据:setA’t’t’ribu’te(String key,Object obj);
    通过键获取数据:getAttribute(String key);
    移除数据:removeAttribute(String key);
    4,获取ServletContext:
    ServletContext request.getServletContext();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值