一、HttpServletRequest

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

说明: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()

获取请求的文件的路径



二、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. HttpServletRequest和ServletRequest的区别

  • HttpServletRequest和ServletRequest都是接口

  • HttpServletRequest继承自ServletRequest

  • HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。如getHeader (String name), getMethod () ,getSession () 等等。


2. ServletRequest

代表一个HTTP请求,请求在内存中是一个对象,这个对象是一个容器,可以存放请求参数和属性。

  1. 请求对象何时被创建,当通过URL访问一个JSP或者Servlet的时候,也就是当调用Servlet的service()、doPut()、doPost()、doXxx()方法时候的时候,执行Servlet的web服服务器就自动创建一个ServletRequest和ServletResponse的对象,传递给服务方法作为参数。

  2. 请求对象由Servlet容器自动产生,这个对象中自动封装了请求中get和post方式提交的参数,以及请求容器中的属性值,还有http头等等。当Servlet或者JSP得到这个请求对象的时候,就知道这个请求时从哪里发出的,请求什么资源,带什么参数等等。

  3. ServletRequest的层次结构
    javax.servlet.ServletRequest
    javax.servlet.http.HttpServletRequest

  4. 通过请求对象,可以获得Session对象和客户端的Cookie。

  5. 请求需要指定URL,浏览器根据URL生成HTTP请求并发送给服务器,请求的URL有一定的规范:


3. ServletResponse

也是由容器自动创建的,代表Servlet对客户端请求的响应,响应的内容一般是HTML,而HTML仅仅是响应内容的一部分。请求中如果还包含其他资源会依次获取,如页面中含有图片,会进行第二个http请求用来获得图片内容。

相应对象有以下功能:

  1. 向客户端写入Cookie
  2. 重写URL
  3. 获取输出流对象,向客户端写入文本或者二进制数据
  4. 设置响应客户端浏览器的字符编码类型
  5. 设置客户端浏览器的MIME类型。

HttpServletResponse和HttpServletRequest详解——Web网络学习笔记相关推荐

  1. JSONObjec的作用详解——Web网络系列学习笔记

    JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素.JSONObject可以很方便的转换成字符串,也可以很方便 ...

  2. 《TCP/IP详解卷一》学习笔记

    <TCP/IP详解卷一>学习笔记 第1章 概述 第3章 IP:网际协议 第6章 ICMP:internet控制报文协议 第7/8章 Ping/Traceroute程序 第9/10章 IP路 ...

  3. kernel_mktime() 详解 —— Linux-0.11 学习笔记(四)

    题目:kernel_mktime() 详解 -- Linux-0.11 学习笔记(四) 在init/main.c文件中,有一个函数static void time_init(void) 该函数读取 C ...

  4. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化

    本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...

  5. 孙鑫VC++深入详解第二章学习笔记

    第二章 掌握C++ 2.1 从结构到类 2.1.1 结构体的定义 C++相比于C的特性:封装性.继承性.多态性: 对象具有状态和行为,状态保存在成员变量中,行为通过函数实现: 标准输入输出流对象:ci ...

  6. 孙鑫VC++深入详解第一章学习笔记

    第一章 Windows程序内部运行机制 1.1 API和SDK API:Windows操作系统提供给应用程序编程的接口. SDK(软件开发包):用于开发的所有资源的集合. 1.2 窗口和句柄 窗口 句 ...

  7. 超级详解遗传算法(GA)学习笔记(1.1) 持续更新

    遗传算法入门第一式---------求解函数极值问题(附完整代码和详解) 声明:大佬请指点,小白同学一起聚聚交流~~~~ 联想到球球大作战!!!!! 以这幅图为例,可以将其看成是一个种群,当中的散点就 ...

  8. oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...

    天萃荷净 Oracle分区表管理,记录关于Oracle分区表的管理案例:创建.删除.合并.拆分.交换.更改分区表的操作方法 1.添加创建分区表 1.1)增加分区(add partition) 语法是: ...

  9. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)

    HttpServletResponse简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 request和re ...

最新文章

  1. PRD 的编写和修改注意事项
  2. Python删除list里面的重复元素的俩种方法
  3. java获取密钥长度_java.security.InvalidKeyException:解密期间密钥大小错误
  4. 样机模型尺寸怎么改_土耳其五代机全尺寸样机模型首次亮相巴黎航展,这不是玩票,是一架认真设计的五代机!...
  5. python类的调用关系_JAVA 查找类的所有引用关系(python实现)
  6. linux mail命令查看邮件/mail控制台
  7. 工业级光纤收发器使用“避坑”指南
  8. 开机显示c:\windows\windows32\config\system文件损坏或丢失的解决方法(收集)
  9. java 8进制串转中文_为什么不能用中文进行编程?而英文就可以
  10. 异步fifo_异步FIFO
  11. fc588热敏打印机驱动_为称重仪表设计热敏打印模块 - 工业自动化称重仪表
  12. iptables 小提升
  13. 用什么的SQL语句来查的一个表中有相同的记录条数
  14. NYOJ题目48-小明的调查作业
  15. 第09课:一网打尽神经序列模型之 RNN 及其变种 LSTM、GRU
  16. 揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第2部分...
  17. 【2019年04月30日】股息率分红最高排名
  18. airbnb北京民宿运营情况分析
  19. 持安科技孙维伯:零信任 业务与安全的最优解
  20. jsPlumb 学习笔记

热门文章

  1. Python 找出一个整数数组中,第二大的数。
  2. 清晰!我们从来都反对“大中台,小前台”的架构设计!
  3. 矩阵中的最长递增路径
  4. 5G实时直播至关重要的4个原因
  5. AWS发布低延迟互动直播服务
  6. LiveVideoStackCon 倒数计时:0
  7. 倒计时3天:3D音带你起飞
  8. 基于HLS格式的低延时互动直播技术
  9. C/C++学习之路: STL
  10. 云原生背景运维转型之 SRE 实践