一、 简介:每当客户端给Web服务器发送一个http请求,web服务器就会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象就代表请求和响应,所以我们可以通过request对象获得请求相关的数据和操作。通过response对象进行对响应相关的数据封装和一些其他的操作。

二、HttpServletRequest与HttpServletResponse的实现类

  • HttpServletRequest与HttpServletResponse的对象req,resp的实际的类型是RequestFacade和ResponseFacade。这两个类都是org.apache.catalina.connector包下面的。也就是我使用的web服务器tomcat的两个类。所以还是由web容器来负责实例化HttpServletRequest与HttpServletResponse的对象。

三、HttpServletRequest简介

  • 请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口。

    • 主要的与请求和接口相关的类及接口:
    方法 说明
    ServletInputStream Servlet的输入流
    ServletOutputStream Servlet的输出流
    ServletRequest 代表Servlet请求的一个接口
    ServletResponse 代表Servlet响应的一个接口
    ServletRequestWrapper 该类实现ServletRequest接口
    ServletResponseWrapper 该类实现ServletResponse接口
    HttpServletRequest 继承了ServletRequest接口,表示HTTP请求
    HttpServletResponse 继承了ServletResponse接口,表示HTTP响应
    HttpServletRequestWrapper HttpServletRequest的实现
    HttpServletResponseWrapper HttpServletResponse的实现
  • 在上面给出的类和接口中,最主要的是HttpServletRequest和HttpServletResponse接口,下面将详细介绍这两个接口。

    • 1.HttpServletRequest

      • HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据。同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息。下表是接口HttpServletRequest的常用方法。

      • 接口HttpServletRequest的常用方法:

      方法 说明
      getAttributeNames() 返回当前请求的所有属性的名字集合
      getAttribute(String name) 返回name指定的属性值
      getCookies() 返回客户端发送的Cookie
      getsession() 返回和客户端相关的session,如果没有给客户端分配session,则返回null
      getsession(boolean create) 返回和客户端相关的session,如果没有给客户端分配session,则创建一个session并返回
      getParameter(String name) 获取请求中的参数,该参数是由name指定的
      getParameterValues(String name) 返回请求中的参数值,该参数值是由name指定的
      getCharacterEncoding() 返回请求的字符编码方式
      getContentLength() 返回请求体的有效长度
      getInputStream() 获取请求的输入流中的数据
      getMethod() 获取发送请求的方式,如get、post
      getParameterNames() 获取请求中所有参数的名字
      getProtocol() 获取请求所使用的协议名称
      getReader() 获取请求体的数据流
      getRemoteAddr() 获取客户端的IP地址
      getRemoteHost() 获取客户端的名字
      getServerName() 返回接受请求的服务器的名字
      getServerPath() 获取请求的文件的路径
    • 2.HttpServletResponse

      • 在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。设置响应的类型可以使用setContentType()方法。发送字符数据,可以使用getWriter()返回一个对象。下表是接口HttpServletResponse的常用方法。

      • 接口HttpServletResponse的常用方法:

      方法 说明
      addCookie(Cookie cookie) 将指定的Cookie加入到当前的响应中
      addHeader(String name,String value) 将指定的名字和值加入到响应的头信息中
      containsHeader(String name) 返回一个布尔值,判断响应的头部是否被设置
      encodeURL(String url) 编码指定的URL
      sendError(int sc) 使用指定状态码发送一个错误到客户端
      sendRedirect(String location) 发送一个临时的响应到客户端
      setDateHeader(String name,long date) 将给出的名字和日期设置响应的头部
      setHeader(String name,String value) 将给出的名字和值设置响应的头部
      setStatus(int sc) 给当前响应设置状态码
      setContentType(String ContentType) 设置响应的MIME类型

引用说明:

最新文章

  1. android:布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!
  2. URL和URI区别
  3. Introduction of SQLite
  4. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
  5. android开发系列之回调函数
  6. 朝鲜RedStar_OS_3.0安装图解
  7. jquery parseInt()的问题
  8. Spring 创建bean的模式
  9. HDU -2524 矩形A + B
  10. Qt 设置对话框背景(使用调色板,设置它的画刷,画刷可以是图片)
  11. mina框架tcpt通讯接收数据断包粘包处理
  12. HTML中include file的用法
  13. ubuntu 安装 nvm 管理Node.js 以及vim 插件增强
  14. 【微信小程序开发】页面配置
  15. vue开发小结(下)
  16. python中的文件读写(open()函数、with open('file_directory','r') as f:、read()函数等)
  17. c/c++动态内存分配的区别
  18. html中header,footer分别固定在顶部和底部
  19. vue.js - 2
  20. 【转】AlphaGo与人工智能

热门文章

  1. Python操作MySQL之查看、增删改、自增ID
  2. Ubuntu创建WiFi:16.0.4
  3. tp5--路由的使用(初级)
  4. thinkphp 5 一些常见问题
  5. php class 访问控制
  6. Apache Commons Lang » 3.10使用简介
  7. Vue移动端项目中下拉刷新和上拉加载
  8. Native Boot 从一个 VHD 引导系统的相关说明
  9. Codeforce-Ozon Tech Challenge 2020-D. Kuroni and the Celebration(交互题+DFS)
  10. HTML(表单标签)