当前位置: 首页 > news >正文

服务端HttpServletRequest、HttpServletResponse、HttpSession

一、概述

    在JavaWeb 开发中,获取客户端传递的参数至关重要。http请求是客户端向服务端发起数据传输协议,主要包含包含请求行、请求头、空行和请求体四个部分,在这四部分中分别携带客户端传递到服务端的数据。常见的http请求方式有get、post、put、delete,服务端如何获取http请求包中的数据?以及服务端如何向客户端传送数据?在Servlet处理流程中,HttpServletRequest、HttpServletResponse、HttpSession 是处理这些请求的关键所在。

二、http请求包中含的信息

 在http 请求包中,携带请求数据的主要在  请求行、请求头、请求体(一般post请求中有,get 中无)。

1、请求行(Request Line)


位置:HTTP请求的第一行。
内容:
方法(Method):请求类型,如 GET、POST、PUT、DELETE 等。
URI(Uniform Resource Identifier):目标资源的路径,如 /index.html 或带查询参数的 /search?q=test。
协议版本:如 HTTP/1.1 或 HTTP/2。

2、请求头(Request Headers)


位置:请求行之后,空行之前。
内容:一系列键值对,描述请求的元信息,常见字段包括:
Host:目标域名(HTTP/1.1 必须包含)。
User-Agent:客户端标识(如浏览器类型)。
Accept:客户端接受的响应格式(如 text/html)。
Content-Type:请求体的数据类型(如 application/json)。
Content-Length:请求体的字节数。
Authorization:身份验证凭证(如 Bearer <token>)。

3、请求体(Request Body)


位置:空行之后(可选,取决于请求类型)。
内容:
需要传输的数据,如表单提交、JSON、文件等。
适用场景:
POST、PUT 等方法中常见,GET 通常无请求体。

三、服务端读取http get请求参数

     在常用的JavaWeb开发框架中,如SpringBoot 、springMVC等都是基于Servlet。其中HttpServletRequest、HttpServletResponse 和 HttpSession是 Servle规范中非常重要的接口和类。而HttpServletRequest是Servlet用来获取客户端发起http请求信息的工具。

服务端可以通过HttpServletRequest 对象的特定方法来获取请求报文中的信息,如请求行的url、method,请求头的host以及cookie等,请求url中的请求参数等。

四、服务端处理 http post 请求参数

http post方式的请求,依然可以通过HttpServletRequest 对象的方法来获取客户端携带的参数。一般post 发起的请求都是包含请求体。

五、HttpServletResponse 接口

     在 Java Web 开发中,HttpServletResponse 是 Servlet API 的核心接口,用于生成并返回 HTTP 响应。它封装了服务器向客户端(如浏览器)发送的所有数据,包括状态码、响应头和响应体。以下是其核心功能和使用场景的解析:

1、HttpServletResponse 的核心功能

功能方法示例说明
设置状态码setStatus(int status)设置 HTTP 状态码(如 200、404、500)
设置响应头setHeader(String name, String value)添加或覆盖响应头(如 Content-TypeCache-Control
写入响应体getWriter() / getOutputStream()通过字符流(PrintWriter)或字节流(ServletOutputStream)写入响应内容
重定向sendRedirect(String location)返回 302 重定向响应,跳转到新 URL
设置内容类型setContentType(String type)设置响应体的 MIME 类型(如 text/htmlapplication/json
处理 CookieaddCookie(Cookie cookie)向客户端添加 Cookie
配置缓存setDateHeader("Expires", long timestamp)控制浏览器缓存行为

2. 常见使用场景及示例

1、返回文本或html 内容

2、返回json 数据

3、重定向

4、设置响应头(如缓存控制)

5、返回文件下载

6、Cookie 管理
添加或删除 Cookie

六、HttpSession

HttpSession 是 Web 开发中用于在多次 HTTP 请求间保持用户状态的核心机制。

1. 核心作用


跨请求存储数据:服务器为每个用户创建一个唯一会话对象,存储临时数据(如用户ID、偏好设置)。
身份追踪:通过会话标识(Session ID)识别同一用户的连续请求。

相关文章:

  • 前端动画库 Anime.js 的V4 版本,兼容 Vue、React
  • 初始C++:类和对象(中)
  • 游戏引擎学习第293天:移动Familiars
  • 线程池核心线程永续机制:从源码到实战的深度解析
  • 继MCP、A2A之上的“AG-UI”协议横空出世,人机交互迈入新纪元
  • 学习黑客Active Directory 入门指南(五)
  • 32LED心形灯程序源代码
  • Java大师成长计划之第26天:Spring生态与微服务架构之消息驱动的微服务
  • 4:OpenCV—保存图像
  • Spring AI Alibaba集成阿里云百炼大模型应用
  • 05 部署Nginx反向代理
  • 【Linux高级全栈开发】2.1.2 事件驱动reactor的原理与实现
  • 【运营商查询】批量手机号码归属地和手机运营商高速查询分类,按省份城市,按运营商移动联通电信快速分类导出Excel表格,基于WPF的实现方案
  • ChatGPT:OpenAI Codex—一款基于云的软件工程 AI 代理,赋能 ChatGPT,革新软件开发模式
  • RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍
  • 抖音视频怎么去掉抖音号水印
  • uni-app学习笔记七-vue3事件处理
  • esp32课设记录(一)按键的短按、长按与双击
  • 区间带边权并查集,XY4060泄露的测试点
  • pycharm连接github(详细步骤)
  • 交响4K修复版《神女》昨晚上演,观众听到了阮玲玉的声音
  • 大学2025丨专访西湖大学副校长邓力:如何才能培养“不惧未知”的创新者
  • 纪念|脖子上挂着红领巾的陈逸飞
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 党建评:对违规宴饮等问题要坚决露头就打