一篇文章弄懂Request和Response(建议收藏复习)
yuyutoo 2024-12-26 17:35 1 浏览 0 评论
一:HttpServletRequest
1.简介:
HttpServletRequest 是专用于HTTP协议的ServletRequest 子接口,它用于封装 HTTP 请求消息。
它在每次请求service()方法的时候,都会由容器创建一个新的对象,如图:
2.功能介绍:
2.1,接收用户请求参数:
String getParameter(String name):通过指定名称获取参数值;
String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;
Enumeration getParameterNames():获取所有参数的名字;
Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。
2.2,请求头信息解析:
2.3,获取请求头信息:
getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*)
getRemoteHost方法返回发出请求的客户机的完整主机名。
getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。
getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。
getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。
getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。
getServerName方法返回当前请求所指向的主机名。
getServerPort方法返回当前请求所连接的服务器端口号。
getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。
HttpServletResponse
1.简介:
Response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。
2.功能介绍:
主要分为以下四种:
l 设置响应头信息;
l 发送状态码;
l 设置响应正文;
l 重定向;
下面分别详解这四个功能:
2.1,设置响应头信息:
可以使用response对象的setHeader()方法来设置响应头,使用该方法设置的响应头最终会发送给客户端浏览器。
比如:
response.setHeader(“content-type”, “text/html;charset=utf-8”):
设置content-type响应头,该头的作用是告诉浏览器响应内容为html类型,编码为utf-8。
而且同时会设置response的字符流编码为utf-8,即response.setCharaceterEncoding(“utf-8”);
2.2,response响应正文
response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:
比如:
PrintWriter out = response.getWriter():获取字符流;
ServletOutputStream out = response.getOutputStream():获取字节流;
2.3,设置状态码及其他方法
简单举几个设置响应码案例:
response.setContentType("text/html;charset=utf-8"):等同与调用response.setHeader(“content-type”, “text/html;charset=utf-8”);
response.setCharacterEncoding(“utf-8”):设置字符响应流的字符编码为utf-8;
response.setStatus(200):设置状态码;
2.4,设置重定向
说到重定向,我先说一下转发,然后你们再看对比:
2.4.1,请求转发
转发:将请求在服务器内部交给另一个组件再去执行,同时共享request中的连接。
2.4.2,重定向
重定向:就是将请求发送回浏览器。然后由浏览器再重新向服务器自动的发送一个请求。web资源受到客户端请求后,通知客户端去访问另外一个web资源
区别:
两者的区别就是转发是由服务器内部进行请求的,而重定向是浏览器请求后,返回一个状态码,浏览器自己再去请求返回的地址。
好了今天的文章就到这里了,觉得对自己有帮助的话关注一下小编哦。
相关推荐
- 了解一点ESB 了解一点点的意思的成语
-
如何进行系统集成?点对点方式VS数据总线方式企业服务总线,即ESB全称为EnterpriseServiceBus如上图所示,企业服务总线是将多个系统(一般是公司内部的多个系统)进行集成,避免服...
- 基础回顾Servlet系列:request,response,ServletContext
-
Servlet系列:(HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig)详解HttpServletRequestH...
- 主动写入流对@ResponseBody注解的影响
-
作者:京东零售柯贤铭问题回溯2023年Q2某日运营反馈一个问题,商品系统商家中心某批量工具模板无法下载,导致功能无法使用(因为模板是动态变化的)商家中心报错(JSON串):...
- setCharacterEncoding和setContentType的区别
-
setCharacterEncoding:只是设置字符的编码方式response.setCharacterEncoding("utf-8");...
- 重定向与转发 重定向和转发的区别及应用
-
请求转发(forward):发送一次请求,将表单数据或封装到url中的数据一并转发到新页面。...
- 多人同时导出 Excel 干崩服务器!参考阿里大佬给出的解决方案
-
前言业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比...
- 一篇文章弄懂Request和Response(建议收藏复习)
-
一:HttpServletRequest1.简介:HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。它在每次请求serv...
- 谷歌Chrome 130稳定版登场:改进文档画中画、增强CSS嵌套声明
-
IT之家10月16日消息,谷歌公司今天(10月16日)发布新闻稿,面向安卓、ChromeOS、Linux、macOS和Windows系统,正式推出Chrome130稳定版浏览...
- Google发布新版Gmail API gmail update apk
-
今天的I/O大会,Google发布了新版的GmailAPI(Beta),相比以往的IMAP,新API的最大优势就是资源获取速度的提高。通过以往的IMAP,第三方App每执行一次操作都需要全盘调用用...
- 谷歌开放语音识别 API,与 Nuance 展开正面较量
-
谷歌今天向第三方开发者开放了语音识别API,计划与Nuance和其他语音识别公司展开正面竞争。为了吸引开发者,GoogleCloudSpeechAPI一开始将免费提供,以后再进行收费。过...
- 谷歌Gemini 2.0发布,引入代理AI 谷歌mini diva
-
谷歌宣布对AI模型Gemini进行重大更新,发布“2.0”更新。更新后的AI模型具有更广泛的多模式推理,并在其软件包中引入了代理AI。Gemini2.0Flash是Gemini2.0完整套件的低...
- Google这款工具再次限免,需要的速度了。再次错过就可惜了
-
Google将恢复对GoogleTranslate网站翻译器小部件的支持,并将其免费提供给非商业用途。 Google再次支持GoogleTranslate网站翻译工具,以帮助人们在COVID-1...
- 谷歌地图API的三大开源替代品 谷歌地图开发
-
CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、寻求《近匠》报道,或给文章挑错,欢迎发送...
- Go 官宣:新版 Protobuf API protobuffer golang
-
原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...
- 全自动翻译国际化(支持一键翻译多国语言,不入侵业务代码)
-
前言Hi~大家好,今天给大家介绍一个关于国际化的vite插件vite-plugin-auto-i18n,一个自动翻译的关于i18n的vite插件。做过国际化的朋友都知道,国际化通常都是用i18n...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 了解一点ESB 了解一点点的意思的成语
- 基础回顾Servlet系列:request,response,ServletContext
- 主动写入流对@ResponseBody注解的影响
- setCharacterEncoding和setContentType的区别
- 重定向与转发 重定向和转发的区别及应用
- 多人同时导出 Excel 干崩服务器!参考阿里大佬给出的解决方案
- 一篇文章弄懂Request和Response(建议收藏复习)
- 谷歌Chrome 130稳定版登场:改进文档画中画、增强CSS嵌套声明
- Google发布新版Gmail API gmail update apk
- 谷歌开放语音识别 API,与 Nuance 展开正面较量
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)