我对于request(请求对象)的理解

获取请求行
    获取请求方法
        String getMethod()
            
    获取请求资源
        String getRequestURL()
            
                
        String getRequestURI()
            
                
    获取应用名称
        String getContextPath()
            
                
    获取get查询参数
        String getQueryString()
            
                
获取请求头
    1.获取所有的请求头名称
        Enumeration<String> headernames= request.getHeaderNames();
        //获取出所有请求头名称并打印

        while(headernames.hasMoreElements()){

              System.out.println(headernames.nextElement());

         }
    2.获取指定的头信息
        request.getHeader("请求头名称");
                  
    referer
        告诉服务器我是从哪个页面链接过来的

         String referer =request.getHeader("referer");
            
        注意事项
            通过以下方式发送请求才会获取
                直接用<a href="">
                用Submit或<input type="image">提交的表单(POST或GET)
                用JAvaScript提交的表单(POST或GET)
            通过以下方式不会有referer
                 从收藏夹链接
                 单击主页或自定义的地址
                在浏览器中直接输地址

获取请求体
    1.获取一个值
        req.getParameter("名称")
            
    2.获取多个值
        req.getParameterValues("名称")
            
        返回的是一个数组
    3.获取所有请求参数名称
        req.getParameterNames()
            
        返回的是一个枚举
    4.获取所有请求参数
        req.getParameterMap()
            
        获取所有请求参数的key-value集合Map<String,String[]>
    解决中文乱码问题
        什么时候使用get方式与post方式
            1.发送的参数不需要写到数据库当中使用get
            2.发送的参数需要保存到数据库当中使用post
            form一般提交数据的数据为post
        造成乱码的原因
            发送请求时, 会对参数进行编码,编码使用的是ISO8859-1  不支持中文,所以乱码
        通用解决办法
            获取对应的参数
            通过iso8859-1转回二进制位,再以utf-8的形式转成字符串
            存在的问题,每一个参数都必须得要转回二进制位,再转为字符串
        request方法解决中文乱码
            只适用于post

请求转发
    重定向与请求转发的区别
        重定向
            找servlet1,通过设置响应,告诉浏览器, 再让浏览器发送请求到servlet2
            发两次请求
            地址栏会发生变化
        请求转发
            请求转发只需要发送一次直接,找servlet1,在servlet1当中直接转发给servlet2,不要再告诉浏览器
            只发送一次请求
            浏览器地址栏当中还是servlet1,不会发生变化
    实现转发
        1.通过请求对象获取一个转发器
            request.getRequestDispatcher(String path)
            返回一个RequestDispatcher
        2.通过转发器进行转发
            调用转发器的forward方法进行转发
            disp.forward(req,rep)
    request域对象
        在一次请求过程当中
        request是共享的。在一个servlet当中设置的参数,转发到另外一个servlet,取出来的是同一个
        生命周期
            创建
                发送一个请求时创建一个request对象
            销毁
                请求结束,浏览器给出响应时,销毁
            作用范围
                一次请求当中

客户端地址与服务器端地址
    客户端地址
        客户端访问服务器使用的地址
        服务器外部地址
        在写的时候要写上web应用的名称 /应用名称/资源
    服务器地址
        在服务内部当中使用的地址
        不需要写web应用名称 /资源名称                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值