美文网首页
request与response

request与response

作者: 聿韦 | 来源:发表于2020-04-03 20:34 被阅读0次

    request与response都是httpservlet下面自带的方法所传递出来的参数,那么他的用法是什么样的呢?

    request的方法

    获取请求中的数据

    获取请求行数据

    获取请求方式String getMethod()
    获取虚拟目录String getContextPath()
    获取servlet路径String getServletPath()
    获取get方式请求参数,比如用户名String getQueryString()
    获取请求的URI/URLString getRequestURI()
    获取版本协议(http的)String getProtocol()
    获取客户端的IP地址String getRemoteAddr()

    获取请求头数据

    获取所有请求头的名称Enumeration<String> getHeaderNames()

    获取请求体数据

    note:只有post才有请求体
    需要两步:1.获取流对象ServletInputStream getInputStream()
    2.再从流对象中读取数据

    获取请求参数

    1. String getParameter(String name)根据参数名称获取参数值 username=zs&password=123
    2. String[] getParameterValues(String name)根据参数名称获取参数值的数组hobby=xx&hobby=game
    3. Enumeration<String> getParameterNames()获取所有请求的参数名称
    4. Map<String,String[]> getParameterMap()获取所有参数的map集合

    共享数据

    ** 域对象**:一个有作用范围的对象,可以在范围内共享数据
    比如request就是一个域对象,它有方法:

    1. void setAttribute(String name,Object obj)存储数据
    2. Object getAttitude(String name)通过键获取值
      3.void removeAttribute(String name)通过键移除键值对

    response

    在学习response之前我们先来补充另一个概念----响应消息,也就是服务给客户端发回的消息。

    响应消息格式:

    响应行 ---- 协议/版本 响应状态码 状态码描述

    状态码:1xx 还没接受完,2xx 成功,3xx重定向
    4xx客户端错误 5xx服务器端错误

    响应头

    content-type 告诉客户端本次响应的体数据格式
    content-disposition 告诉客户端以什么格式打开数据

    响应体:传输的数据

    !如果用服务器输出字符数据到浏览器用这个方法response.getwriter().write("xxx"),可能遇到乱码问题,可以采用以下语句
    response.setContentType("text/html;charset=utf-8")来设置编码,输出方法变成response.getoutputstream().write(xxx)

    ServletContext对象

    通过request.getServletContext()或者httpservlet里的this.getServletContext()来获取,它是一个域对象
    其下属以下方法,都是通过域对象来存取删数据

    1. setAttribute(String name,Object value)
    2. getAttribute(String name)
    3. removeAttribute(String name)
      还有获取文件真实服务器(路径的方法)
      servletcontext.getRealPath

    程序练习中为我们提供了一个实例,它的访问流程是如下


    图片.png

    相关文章

      网友评论

          本文标题:request与response

          本文链接:https://www.haomeiwen.com/subject/iyzkphtx.html