HttpServletRequest与HttpServletResponse

时间:2022-10-15 14:05:53

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

引用说明:

HttpServletRequest与HttpServletResponse的更多相关文章

  1. HttpServletrequest 与HttpServletResponse总结

    如果说DOM是javascript与HTML的桥梁,那么servlet就是前端与后端的桥梁,HttpServletRequest和HttpServletResponse就是之间的信使,好了,废话不多说 ...

  2. GenericServlet,HttpServletRequest和HttpServletResponse

    最基本的是通过实现Servlet接口来编写Servlet类,这需要实现Servlet接口中定义的5个方法. 为了简化Servlet的编写,在javax.servlet包中提供了一个抽象类Generic ...

  3. @SuppressWarnings("unchecked")(解决标准的后台HttpServletRequest request, HttpServletResponse response)格式

    在springmvc的应用中有些限制会出现必须是 public void save(HttpServletRequest request, HttpServletResponse response) ...

  4. Java第三阶段学习(十二、HttpServletRequest与HttpServletResponse)

    一.HttpServletRequest 1.概述: 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和 ...

  5. java HttpServletRequest和HttpServletResponse詳解

    這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...

  6. Maven项目下HttpServletRequest 或 HttpServletResponse需引用的依赖包

    转载: http://xyly624.blog.51cto.com/842520/865630/ Maven项目下HttpServletRequest 或 HttpServletResponse需引用 ...

  7. HttpServletRequest和HttpServletResponse实例

    先看一下web.xml文件配置: <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...

  8. HttpServletRequest和HttpServletResponse详解

    请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口. 主要的与请求和接口相关的类及接口 方    法 说    明 ServletInputStream Servlet的输入流 ...

  9. 关于Filter中ServletRequest和ServletResponse强转HttpServletRequest和HttpServletResponse安全问题(向下转型一定不安全吗?)

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOE ...

  10. 关于Filter中ServletRequest和ServletResponse强转HttpServletRequest和HttpServletResponse

    ---转载自:https://www.cnblogs.com/mei0619/p/8341159.html request对象的生成方式不是ServletRequest request = new S ...

随机推荐

  1. View and Data API 现在支持IE11了

    By Daniel Du After a long time waiting, IE11 finally supports WebGL, which enables us viewing our 3D ...

  2. CSS样式常用属性整理

    web工程师是最近5年刚刚兴起的一门高薪职业,人们的专注度越来越高. 那么前端除了学习html标签之外还需要掌握什么知识点呢? 为大家整理了一个和HTML标签密不可分的知识要点--<CSS样式常 ...

  3. QRCode&period;js 生成二维码

    QRCode.js 是一个用于生成二维码图片的插件. github地址 在线实例 实例预览 基础示例 实例预览 API 接口 使用方法 载入 JavaScript 文件 <script src= ...

  4. 关于C语言中的位域

    有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可.为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称 ...

  5. 关于软件工程结对编程作业 PairProject &colon; Elevator Scheduler(电梯调度算法的实现与测试)的总结

    1)结对编程队友 1106xxxx 张扬 1106xxxx 杨军 其中,此项目的编程实现主要由前者完成. 2)关于结对编程 结对编程的优点: 最直接的一点:在结对编程中,由于有另一个人在你身边和你配合 ...

  6. 解决编译错误&colon; 非法字符&colon; &&num;39&semi;&bsol;ufeff&&num;39&semi; 解决方案&vert;错误&colon; 需要class&comma; interface或enum

    http://www.cnblogs.com/oymx/p/5353235.html 可以 note++打开  在格式里  选择utf-8 无bom格式编码 即可

  7. Spark ML 文本的分类

    最近一直在研究Spark的分类算法,因为我们是做日志文本分类,在官网和各大网站一直没找到相应的Demo,经过1个多月的研究,终于有点成效. val sparkConf = new SparkConf( ...

  8. &lbrack;主席树&rsqb;HDOJ2665 &amp&semi;&amp&semi; POJ2104 &amp&semi;&amp&semi; POJ2761

    主席树真是神奇的物种! Orz一篇资料 题意:给n.m   下面有n个数 (编号1到n) 有m个询问,询问的是上面的数的编号在[l,r]之间第k小的数 n.m的范围都是$10^5$ 是主席树的入门题 ...

  9. Linux Mono OpenShift Cloud9 rhc

    OpenShift Mono Asp.net MVC4 MySql 1..Net4.0+Mvc4,不要使用太新的.Net4.5.1+Mvc5. 2.MySql数据库:MySql.Data.Dll 从官 ...

  10. Bomb Game

    hdu3622:http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意:你有n次,每次你可以在平面上放置一个点,并且每一次都会有两个位置可以选,每一次只能选 ...