一、 简介:每当客户端给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简介

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

    • 主要的与请求和接口相关的类及接口:
    ServletInputStreamServlet的输入流
    ServletOutputStreamServlet的输出流
    ServletRequest代表Servlet请求的一个接口
    ServletResponse代表Servlet响应的一个接口
    ServletRequestWrapper该类实现ServletRequest接口
    ServletResponseWrapper该类实现ServletResponse接口
    HttpServletRequest继承了ServletRequest接口,表示HTTP请求
    HttpServletResponse继承了ServletResponse接口,表示HTTP响应
    HttpServletRequestWrapperHttpServletRequest的实现
    HttpServletResponseWrapperHttpServletResponse的实现
  • 在上面给出的类和接口中,最主要的是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类型

引用说明:

05-11 22:21