A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 lovemiya 于 2018-5-21 16:28 编辑

response&request



ServletContext
  • InputStream getResourceAsStream(String path)

    • 根据提供的路径读取文件返回一个文件的输入流

  • String getRealPath(String path)

    • 返回一个路径的磁盘绝对路径

  • String getMimeType(String file)

    • 获得文件的MIME的类型

  • 扩展类加载器

    • ReadFileUtils.class.getClassLoader().getResourceAsStream("db.properties");


Response概述响应行
  • setStatus(int sc):设置状态码

响应头
  • 针对一个key对应多个value的头信息

    • addDateHeader(String name, long date)
    • addHeader(String name, String value)
    • addIntHeader(String name, int value)

  • 针对一个key对应多个value的头信息

    • setDateHeader(String name, long date)
    • setHeader(String name, String value)
    • setIntHeader(String name, int value)


响应体
  • getOutputStream()
  • getWriter()

文件的下载
  • 设置两个头一个流:

    • Content-Type
    • Content-Disposition
    • InputStream


response输出响应内容的方法
  • getOutputStream()
  • getWriter()

    • 这两个方法是互斥的

  • 输出中文乱码的处理

    • 字节流:

      • 设置浏览器默认的打开的编码

        • response.setHeader("Content-Type","text/html;charset=UTF-8")

      • 设置中文字节取出的时候的编码

        • "中文".getBytes("UTF-8")


    • 字符流

      • response.setContentType("text/html;charset=UTF-8")



Request
  • 代表用户的请求

API功能一:获得客户机的相关的信息
  • 获得请求的方式

    • getMethod()

  • 获得请求的路径

    • getRequestURI()
    • getRequestURL()

  • 获得客户机的相关的信息

    • getRemoteAddr()

  • 获得工程名

    • getContextPath()


功能二:获得页面中提交的参数
  • getParameter(String name)
  • getParameterMap()
  • getParameterNames()
  • getParameterValues(String name)

功能三:作为域对象存取数据
  • setAttribute(String name, Object object)
  • getAttribute(String name)
  • removeAttribute(String name)

作用范围
  • 一次请求的范围
  • 创建:客户端向服务器发送了一次请求之后
  • 销毁:当服务器对这次请求做出了响应之后

处理request接受参数的中文乱码的问题POST解决方案
  • 设置request缓冲区的编码:

    • request.setCharacterEncoding("UTF-8")


GET解决方案
  • 使用String的构造方法

    • String (byte[] bytes, String charsetName)


重定向和转发
  • 重定向的地址栏会发生变化,转发的地址栏不变.
  • 重定向两次请求两次响应,转发一次请求一次响应.
  • 重定向路径需要加工程名,转发的路径不需要加工程名.
  • 重定向可以跳转到任意网站,转发只能在服务器内部进行转发.


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马